我有一个这样的项目:
Header (.h) files
________________ _________
| Main Big Class |---------------| ModuleB |
| - libraries | _________ | -SubMod |
|________________|--| ModuleA | |_________|
| -SubMod | |
|_________| ____|____
| | SubModB |
____|____ |_________|
| SubModA |
|_________|
All Code (.cpp) files have #include "Main Big Class.h"
因此,在 ModuleA 的子模块上,它们的标头中没有任何包含,并且它们的 .cpp 文件中只有#include "Main.h",其中我有用于字符串、向量和我在项目。在 ModuleA 上,我包含了它的所有子模块,并且我可以在 ModuleA 的任何子模块中使用向量和字符串。
现在我要转移到 ModuleB,我添加了一个新的子模块,并且和以前一样,ModuleB 有:
#include "SubModuleB1.h"
#include "SubModuleB2.h"
但是当我尝试编译时,Visual Studio 在 B 的这些子模块中有字符串和向量的行显示错误。
有时注释行,编译,然后取消注释它们可能会编译,但是我必须逐行执行此操作,并且单个错误意味着除非我再次将它们全部注释,否则它将无法编译。
我已经尝试清理和重建,但没有成功,我不知道为什么会发生这种情况。
为什么会发生这种情况,我该如何解决?
编辑:错误是每行 3 个:
error C2143: syntax error : missing ';' before '<'
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
error C2238: unexpected token(s) preceding ';'