我有一个包含两个项目的 VC++ 解决方案。项目 B 引用项目 A。项目 B 还具有项目 A 中的文件夹作为包含目录(属性/配置属性/C++/其他包含目录)。未使用任何命名空间。
当我从项目 A 类(如 #include "someFolder\SomeClass.h"
)导入 header 时,我可以声明指向该类的指针。
SomeClass *sc;
但是一旦我调用构造函数,它就不会编译。 IntelliSense 未显示任何错误。
SomeClass *sc = new SomeClass("someString");
我得到:
error LNK2001: "unresolved external symbol "public_ thiscall SomeClass::SomeClass(..." and "error LNK1120: 1 unresolved externals".
构造函数是公共(public)的,就像 SomeClass 中的方法一样。有趣的是,我在项目 B 中调用 SomeClass 的方法时可以编译。只有 cunstructor 似乎不起作用。
最佳答案
您必须链接从“SomeClass.cpp”编译的目标代码。如果项目 A 编译为静态库,则添加对其的引用。
关于c++ - vc++ 无法解析的外部符号(无法调用构造函数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8124490/