GCC 4.4.3,Ubuntu
3个项目:
为什么这个案子不让链接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;
}发布于 2012-01-10 10:03:25
gcc命令行上库的顺序很重要--您需要按依赖顺序列出库。如果您有任何循环依赖项,那么您可能需要列出至少两个库,以满足这一要求。
在您的特定情况下,您可能需要这样的内容:
$ g++ ... X.o -lB -lA ...https://stackoverflow.com/questions/8801087
复制相似问题