複数のプロジェクトを含むビジュアル スタジオ ソリューションがあります。そのうちの 1 つ、「MyProject」はスタティック ライブラリ (.lib) です。プロジェクトには、他の多くのクラスの中でも、「A」と「B」の 2 つのクラスがあります。
あ:
#pragma once
class A
{
public:
void foo();
};
A.cpp:
#include A.h
void A::foo(){
//do something
}
Bh:
#pragma once
class B
{
public:
void bar();
};
B.cpp:
#include B.h
#include A.h
void B::bar(){
A a;
a.foo();
}
コンパイル エラーがなければ、リンケージ エラーが発生します。
OtherProject.lib(B.obj) : エラー LNK2019: 未解決の外部シンボル "public: void __thiscall A::foo(void)" (?foo@A@@QAE_NXZ) 関数で参照されている "public: void __thiscall B::bar( void)" (?bar@B@@QAEXXZ)
すべてがうまくいっているようです。A.cpp のコンパイル プロセスが表示されます。プロジェクト「MyProject」のみをビルドまたはリンクしても問題ありません。しかし、ソリューション全体を構築しようとすると、エラーが発生します。
ありがとう!