我有两个项目A和B. A包含一个头文件/源文件,它只定义了一个类Child
。
我先建立A,没问题。然后构建B并得到error LNK1120: 1 unresolved externals
。
注意我可以在没有任何问题的情况下实例化A中的Child。我正在使用Visual Studio 2012.
项目A:
// Dominate.cpp
#include "Dominate.h"
Child::Child(int x)
{ }
// Dominate.h
class Child
{
public:
int val;
Child(int x);
};
项目B:
#include "../ConsoleApplication1/Dominate.h"
int _tmain(int argc, _TCHAR* argv[])
{
Child a = Child(13); // unresolved externals
return 0;
}
答案 0 :(得分:0)
不知何故,你需要将dominate.obj链接到项目B中。我不足以让VS构建专家为您提供有关如何执行此操作的详细信息,尽管一种简单且可行的方法可能是将dominate.cpp添加到项目B.我相信菜单项类似于Project / Add Existing ...,然后浏览并选择dominate.cpp。
答案 1 :(得分:0)
两个cpp文件都需要在同一个项目中。您可以使用菜单命令Project,Add to Project,...来实现它。然后使用Build命令。它编译两个cpp,然后运行链接器来组合两个obj。您缺少这个链接器步骤。