私は古いlinuxプラットフォームからkubunutu 9.04にプロジェクトを移動しようとしています。 GCC 4.3.3でコンパイルしたときに今、私はこのエラーを取得する:コンパイルエラー:cpumask.h: "and"がマクロパラメータリストに表示されない可能性があります
/usr/src/linux-headers-2.6.28-11-generic/include/linux/cpumask.h:600:37: error: "and" may not appear in macro parameter list
私は右のメッセージを理解していれば、それは「予約済みの命令」であることから、マクロのパラメータとして使用「と」することはできません。それに関する2つの質問:
- これはどのように可能ですか?私は、Linuxのヘッダファイルにこのような間違いがあるとは想像できません。私は前に何か間違っていましたか?私は#undefを試しましたが、これは役に立たないでしょう。
- このエラーを修正するにはどうすればよいですか?私はLinuxのヘッダーファイルを変更する必要がありますが、それは本当ですか?
ありがとうございました。
@このソリューションは、私がやる事はこれで発見:私は.HPPにが含まれますファイル。しかし、私は(他の)奇妙なことをする前にそれをしない...任意のアイデア? –
Chris
ありがとう、私はこれの理由を少なくとも理解しています:cpumask.hで定義されたマクロはCマクロであるため、C++プリプロセッサの制限を満たしていません。しかし、私はまだこれを修正する簡単な解決策があるのだろうか、あるいは.htを.cpp/.hppに含めることを望んでいる唯一の人ですか? – Chris