GCC Linker Order

※ 问题

在程序开发过程中遇到了这样的问题:

程序比较大,因而拆分成了若干个静态库:

  1. 编译:OK!
  2. 链接:把静态库链接到可执行文件时,出现了 “… undefined reference to …” 的错误提示。

※ 调试

逐个地检查这些静态库文件:

nm -C xxxS.a | grep <symbol>

检查结果显示,错误提示里找不到的 symbol 其实已经包含在了某个静态库里面。

※ 解决

参考 http://stackoverflow.com/questions/45135/linker-order-gcc

调整 Makefile 里的静态库文件的顺序,链接 OK!

Read More: