我有一个包含两个项目的VC ++解决方案。项目B引用项目A.项目B还具有包含目录(属性/配置属性/ C ++ /附加包含目录)项目A中的文件夹。没有使用名称空间。
当我从像#include "someFolder\SomeClass.h"
这样的Project A类中导入标题时,我就能够声明一个指向该类的指针。
SomeClass *sc;
但是一旦我调用构造函数它就不会编译。 IntelliSense不会显示任何错误。
SomeClass *sc = new SomeClass("someString");
我明白了:
错误LNK2001:“未解析的外部符号”public_ thiscall SomeClass :: SomeClass(...“和”错误LNK1120:1未解析的外部“。
构造函数是公共的,就像SomeClass中的方法一样。有趣的是,我可以在项目B中从SomeClass调用方法时编译。只有cunstructor似乎不起作用。
答案 0 :(得分:2)
您必须链接从“Same Class.c ++”编译的目标代码。如果项目A编译为静态库,则添加对它的引用。
答案 1 :(得分:1)
源代码确实编译,这是一个链接器错误。您需要将项目A中的库(.lib)文件添加到项目B中的链接器命令。