c++ - 由于更改cpp目录导致的链接问题

标签 c++ boost extern

我是一名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/

相关文章:

c++ - 在特征库中的大矩阵中创建子矩阵

c++ - 如何编译 Duff 的设备代码?

c++ - 使用 boost::scoped_lock(Mutex &mx, bool initially_locked) 构造函数给我错误

改变外部变量的值

c++ - vector<bool> 是否违反容器要求?

c++ - 如何在互斥锁中进行循环类型排序?

c++ - 禁用 Visual C++ boost 警告

c++ - 可视化 boost sml 状态机

c++ - 使用外部模板 (C++11)

C++ LNK2001 尝试使用外部变量时出错