自己写的程序,使用到多个.a文件,多个.a文件之间包含调用关系时,处理undefined reference to "some_function" 之类的错误,可以通过调整编译时.a文件在编译语句的前后顺序,来解决这个问题。
在默认情况下,对于-l 使用库的要求是越是基础的库越要写在后面,无论是静态还动态。
例如编译 Prog程序,同时用到了libdo.a和libprepare.a两个静态链接库,其中libdo.a有调用到libprepare.a中的函数,他们的编译顺序应该是这样的
g++ -o Prog libdo.a libprepare.a