实例化在另一个项目中定义的类时未解析的外部
unresolved externals when instantiate a class defined in another project
我有两个项目A和B。A包含一个头/源文件,它只定义了一个类Child
。我首先构建了A,没问题。然后构建B,得到CCD_ 2。注意,我可以在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;
}
不知何故,你需要将dominate.obj链接到项目B中。我不是一个足够的VS构建专家,无法为你提供如何做到这一点的详细信息,尽管一种简单可行的方法可能是将dominate.compp添加到项目B。我相信菜单项类似于project/add Existing。。。,然后浏览并选择dominate.cpp.
两个cpp文件需要在同一个项目中。您可以使用菜单命令"项目"、"添加到项目"、。。。使其成为这样。然后使用"生成"命令。它编译两个cpp,然后运行链接器来组合这两个obj。您缺少的是这个链接器步骤。
相关文章:
- 从C++实例化QML
- 设计一个只能由特定类实例化的类(如果可能的话,通过make_unique)
- 如何创建一个空的全局类并在启动时实例化它
- 在两个类中共享相同的函数调用,并在不需要时避免空实例化
- 约束和显式模板实例化
- 为什么包含windows.h会产生语法错误,从而阻止类的实例化?(C2146,C2065)
- 对象实例化调用构造函数的次数太多
- 如何使用非默认构造函数实例化模板化类
- 静态数据成员模板专用化的实例化点在哪里
- 错误的cv::face FacemarkLBF实例化
- C++的解析器在可以区分比较和模板实例化之前会做什么?
- 另一个类中嵌套模板的外部实例化
- 使用"外部模板"来防止模板类的隐式实例化
- 仅标头模板(外部模板)的显式实例化声明
- 在主函数(库)外部实例化QApplication
- 删除函数外部的实例化对象
- 在模板实例化上声明外部 C 函数
- 实例化在另一个项目中定义的类时未解析的外部
- c++外部模板实例化和类型定义(gcc)
- 在源文件中显式实例化vs2010中的外部模板类