0
GCC 4.4.3、Ubuntu。GCCリンカー:staticAは他の共有ライブラリをリンクするときにstaticBを見ることができません
3プロジェクト:
- A(スタティックライブラリ)OK
- B(静的ライブラリ)を構築する構築OK
- X(共有ライブラリまたはコンソールアプリケーション)リンカーエラー
なぜこの場合はリンクXを許可しませんか?
X calls B;
B calls A; // WHY???? linker error in X: B has undefined reference to stuff in A
この場合は動作します:
X calls A; // this fact allows B access A
X calls B;
B calls A; // Now X linked just fine
全コード:
//////////////////////////////
// StaticAAA.cpp
void FunctionAAA()
{
}
//////////////////////////////
// StaticBBB.cpp
void FunctionAAA();
void FunctionBBB()
{
FunctionAAA();
}
//////////////////////////////
// App.cpp
void FunctionAAA();
void FunctionBBB();
int main()
{
#ifdef WHY_LINKER_ERROR_FIXED
FunctionAAA();
#endif
FunctionBBB();
return 0;
}
があなたのgccのリンカのコマンドラインを表示:あなたの特定のケースで
は、おそらくのような何かをしたいです! –
Paul R、ありがとう!注文A、Bは働かない、BはAが働いた!これを答えとして投稿すると、他の人に見られるようにマークします。 –