ヘッダーのプリコンパイルに非常に奇妙な問題がありました。リンカーは、.cppファイル内にメソッドを実装すると、未解決の外部シンボルエラーであるLNK2019を生成します。ただし、メソッドを.hファイルに実装すると、プログラムをコンパイルすることができます。私は解決策を見つけるために起こったが、私はこのエラーの根本的な原因について全く知らない。 >プロジェクト1
- - >プロジェクト2Visual C++ LNK2019のリンク先のプリコンパイル済みヘッダーのエラー
プロジェクト1 3つのファイルを持っている
マイプロジェクトの構造は、この
ソリューション
のように見えます。 A.h、A.cpp、stdafx.h
file A.h
#pragma once
class A
{
public:
int num;
A();
};
file A.cpp
#include "stdafx.h"
A::A()
{
num = 2;
}
file stdafx.h
...
#include "A.h"
...
プロジェクト2ではAクラスを使いたいと思います。コンパイル時に
ファイルwhatever.cpp
#include "stdafx.h"
#include "../Project1/A.h"
...
A* a_obj = new A();
...
、リンカが構築機能のための未解決の外部シンボルエラーを報告します。 A.hファイルでコンストラクタを実装する場合。プロジェクト2は順調に成功する可能性がある。私は知りたいのですが、なぜ実装をA.cppファイルに入れることができないのですか?プリコンパイルヘッダを整理する正しい方法は何ですか?
ありがとう
は、第二のアプローチをありがとう私のためにうまくいく – LNK2019