0

私は 2 つのプロジェクト A と B を持っています。A には、単に class を定義するヘッダー/ソース ファイルが含まれています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;
}
4

2 に答える 2

0

どういうわけか、dominate.obj をプロジェクト B にリンクする必要があります。私は VS ビルドの専門家ではありませんが、その方法について詳しく説明することはできませんが、プロジェクト B に dominate.cpp を追加することは、単純で実行可能な方法の 1 つかもしれません。メニュー項目は Project/Add Existing... のようなものだと思います。次に、dominate.cpp を参照して選択します。

于 2013-07-01T03:27:03.517 に答える
0

両方の cpp ファイルが同じプロジェクトにある必要があります。メニュー コマンド [プロジェクト]、[プロジェクトに追加]、... を使用して、そのようにすることができます。次に Build コマンドを使用します。両方の cpp をコンパイルし、リンカーを実行して 2 つの obj を結合します。不足しているのは、このリンカのステップです。

于 2013-07-01T08:11:35.477 に答える