我目前在我的c ++项目中使用条件包含指令时遇到此问题。我想向社区寻求建议,看看我是否真的被允许这样做。
我的伪代码如下:
BOOL myLogic(){
#ifdef GlobalVar1
if(MyNameSpace::CheckSomething()) //Compiler complains that 'MyNameSpace' is not a class or namespace name
{
MyClass myCls;
myCls.doSomething();
}
else
{
ErrorLog(ERROR_CHECKINGSOMETHING); //Compiler complains that ERROR_CHECKINGSOMETHING as undeclared idenifier
}
#endif
#ifdef GlobalVar2
...
#endif
}
我声明了大约20个条件包含,在定义了我选择的GlobalVar之后,我尝试编译我的解决方案,我在评论中报告了上述两个错误。
我希望通过以上方式使用#ifdef和#endif来查明我是否做错了什么。当我试图在我的问题中测试SOF成员的建议时,我之前发布过:How to compile source code separately in c++。谢谢!
答案 0 :(得分:0)
我意识到错误是由某些标头未正确包含引起的。
我已经包含#ifdef inclusions指令来屏蔽头文件,因为现在不再包含一些必要的头文件,因为不满足包含条件。
我已经通过在基类中添加必要的头文件解决了这个问题。