我是一名java程序员;因此,由于链接等原因,我在使用 C++ 时遇到了很多问题。问题基本上是我想将单个文件 (Transformation.cpp) 重构为 (TrasnformationBackend.cpp)、(TrasnformationFrontend.cpp) 和一个头文件。如您所见,我需要通过所有文件声明一个全局结构,并且我使用头文件中的“extern”完成了它并且工作正常。但是,当我尝试将前端 cpp 文件移动到不同的目录时,出现 Unresolved external 错误。
顺便说一下,我正在使用 BOOST。
最佳答案
header 中的 extern
声明仅告诉编译器该变量将在编译单元中定义。它实际上并不创建该变量/为其分配存储空间。
如果你的.h
中有:
extern int globalvar;
您只需要一个 .cpp
文件:
int globalvar;
否则编译会成功,但链接会失败,因为无法解析外部。
关于c++ - 由于更改cpp目录导致的链接问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6788474/