Je suis en train de déplacer un projet d'une ancienne plate-forme Linux vers un kubunutu 9.04. Maintenant, je reçois cette erreur lors de la compilation avec gcc 4.3.3:erreur de compilation: cpumask.h: "et" peut ne pas apparaître dans la liste des paramètres de macro
/usr/src/linux-headers-2.6.28-11-generic/include/linux/cpumask.h:600:37: error: "and" may not appear in macro parameter list
Si je comprends bien le message, il ne peut pas utiliser « et » en tant que paramètre macro, car il est une « commande réservé ». Deux questions à ce sujet:
- Comment est-ce possible? Je ne peux pas imaginer qu'il y ait une telle erreur dans les fichiers d'en-tête de Linux ... Ai-je fait quelque chose de mal avant? J'ai essayé un #undef et mais cela n'aidera pas.
- Comment réparer cette erreur? Il ne peut pas être vrai que je dois changer les fichiers d'en-tête Linux, peut-il?
Merci pour votre aide.
La chose que je fais est la suivante: j'inclure dans un .hpp fichier. Mais je ne fais pas d'autres trucs bizarres avant ça ... des idées? –
Chris
Merci les gars, à cause de vous, je comprends moins la raison de ceci: La macro définie dans cpumask.h ne répond pas aux restrictions du préprocesseur C++ car il s'agit d'une macro C. Mais je me demande toujours s'il existe une solution facile pour résoudre ce problème, ou suis-je le seul à vouloir inclure .h dans .cpp/.hpp? – Chris