实例化另一个项目中定义的类时未解析的外部

时间:2013-07-01 03:20:14

标签: c++ visual-studio-2012

我有两个项目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;
}

2 个答案:

答案 0 :(得分:0)

不知何故,你需要将dominate.obj链接到项目B中。我不足以让VS构建专家为您提供有关如何执行此操作的详细信息,尽管一种简单且可行的方法可能是将dominate.cpp添加到项目B.我相信菜单项类似于Project / Add Existing ...,然后浏览并选择dominate.cpp。

答案 1 :(得分:0)

两个cpp文件都需要在同一个项目中。您可以使用菜单命令Project,Add to Project,...来实现它。然后使用Build命令。它编译两个cpp,然后运行链接器来组合两个obj。您缺少这个链接器步骤。