vc++无法解析的外部符号(不能调用构造函数)

vc++ unresolved external symbol (cannot call constructor)

本文关键字:不能 调用 构造函数 符号 外部 vc++      更新时间:2023-10-16

我有一个vc++解决方案,有两个项目。项目B引用项目a。项目B也有项目a的包含目录(属性/配置属性/c++/附加包含目录)。没有使用命名空间。

当我从像#include "someFolderSomeClass.h"这样的项目a类导入头文件时,我可以声明一个指向该类的指针。

SomeClass *sc;

但是一旦我调用构造函数,它就不会编译。智能感知不显示任何错误。

SomeClass *sc = new SomeClass("someString");

我得到:

错误LNK2001: "未解析的外部符号" public_thiscall SomeClass::SomeClass(…"answers"错误LNK1120: 1未解析的外部符号".

构造函数是公共的,就像SomeClass中的方法一样。有趣的是,我可以在项目b中从someeclass调用方法时进行编译。只有构造函数似乎不起作用。

您必须链接从" somecclass .cpp"编译的目标代码。如果项目A编译为静态库,则添加对它的引用。

源代码没有编译,这是一个链接器错误。您需要将项目A中的库(.lib)文件添加到项目b中的链接器命令中。