linux下g++ 静态库的链接问题
现有目录src以及它下面a b c d四个子目录,src下面有test.cpp; a,b,c,d分别对应一个模块
将各个子目录编译成四个静态库:liba.a libb.a libc.a libd.a
其中b中用到a里的函数接口,d用到b和a中的接口,c用到d中接口(假设没有相互间的依赖)
四个子目录编译完后都生成了各自的*.a文件
这时需将四个库加入到test.cpp编译过程中以生成可执行文件
其中几个库会提示相互需要的函数接口找不到
将库生成的顺序调整为 liba.a libb.a libd.a libc.a也是不行。
请问原因是什么?
如何避免“ undefined reference to....”这样的问题?
PS:如果改用动态库的话不存在这样的问题。