我是一名java程序员;因此,由于链接等原因,我在c ++方面面临很多问题。问题基本上是我想将单个文件(Transformation.cpp)重新分解为(TrasnformationBackend.cpp),(TrasnformationFrontend.cpp)和头文件。正如您所看到的,我需要通过所有文件声明一个全局结构,并且我使用头文件中的“extern”来完成它并且它工作正常。但是,当我尝试将前端cpp文件移动到另一个目录时,会出现未解决的外部错误。
顺便说一下,我正在使用BOOST。
答案 0 :(得分:1)
标头中的extern
声明仅告知编译器该变量将在编译单元中定义。它实际上并没有为它创建变量/分配存储。
如果您有.h
:
extern int globalvar;
您需要一个且只有一个.cpp
个文件:
int globalvar;
否则编译将正常,但链接将失败,因为无法解析外部。
答案 1 :(得分:0)
“...当我尝试将前端cpp文件移动到另一个目录时出现错误。”
好的,如果你查看你的编译器/ IDE设置,那么它将搜索哪个目录来查找.cpp文件;你需要在这里添加新目录吗?