以前一直用的是动态库,没碰到过问题,昨天用静态库的时候,发现报undefined reference错误,今天找了下资料
直接贴下结论:
LD在链接生成目标文件时,会从左到有扫描输入的依赖库,但是,当依赖库之间也有依赖关系时,必须将”依赖别人的库”放在 “被别人依赖的库”的前面。否则,会链接失败!


可供学习参考的文章:
Linux下链接相互依赖的.a文件遇到undefined reference问题总结:
http://hi.baidu.com/buptwinnie/item/0e7fe2139b07d61fe2f986da

交叉编译静态库的链接顺序:
http://blog.csdn.net/rangf/article/details/8000429

gcc 库顺序问题解决方法:
http://blog.csdn.net/rangf/article/details/8001242

GCC/LD编译链接潜规则 (第二弹) : 为什么总链接失败? --LD对依赖库的输入顺序敏感:
http://blog.csdn.net/zdl1016/article/details/9015485



Logo

更多推荐