GCC Linker Order
※ 问题
在程序开发过程中遇到了这样的问题:
程序比较大,因而拆分成了若干个静态库:
- 编译:OK!
- 链接:把静态库链接到可执行文件时,出现了 “… undefined reference to …” 的错误提示。
※ 调试
逐个地检查这些静态库文件:
nm -C xxxS.a | grep <symbol>
检查结果显示,错误提示里找不到的 symbol 其实已经包含在了某个静态库里面。
※ 解决
参考 http://stackoverflow.com/questions/45135/linker-order-gcc
调整 Makefile 里的静态库文件的顺序,链接 OK!