Je suis en train de compiler du code source avec Visual C++ 2010 Express. Le code a été écrit pour GCC, et contient des attributs comme ceci:Macros à l'échelle de la solution Visual C++ 2010 avec les paramètres
struct something {
...
} __attribute__((packed));
Puisque ce n'est pas la syntaxe standard C++, Visual C++ ne reconnaît pas. Avec cette macro avant la déclaration de struct, cela fonctionne très bien:
#define __attribute__(p)
Mais je ne veux pas modifier les fichiers. J'ai créé une nouvelle feuille de propriétés (GccCompat), et je suis allé à préprocesseur Définitions, et a ajouté la macro, comme ceci:
__attribute__(p)
ou comme ceci:
__attribute__(p)=
Mais cela ne fonctionne pas. Ce n'est tout simplement pas appelé. Si je définis juste __attribute__
(sans paramètres) dans le même emplacement, la macro est correctement définie. Notez que la ligne de commande générée est correcte (les macros avec paramètres sont transmises exactement de la même manière que les autres), mais le compilateur semble l'ignorer. Alors, comment puis-je globalement définir ma macro avec un paramètre?
Est-ce une faute de frappe? L'extension GCC est '__attribute__' mais vous mentionnez' __attributes__' dans la section MSVC de la question. –
C'est une faute de frappe. J'ai utilisé '__attribute__' dans le vrai projet. – OregonGhost