转载
https://www.cnblogs.com/Hocker/p/8269506.html
https://www.cnblogs.com/OCaml/archive/2012/06/18/2554086.html#sec-1-1
关于链接库的顺序问题,我看了下链接库的顺序问题一文,正常的情况下,链动态接库时是从左至右开始链接,如果出现了顺序错误,gcc自动帮我们重定位,我认为保险的方式是做好库的顺序。
那我这里稍微整理了下链接顺序。
高层静态链接库
底层依赖库
高层动态链接库
其他无关系链接库
举个栗子:
target_link_libraries(test -lpthread)
target_link_libraries(test -llibhappy)
假设libhappy.so需要链接pthread。当我们用上面的顺序来指定链接库时,就会报错,提示找不到pthread。这里应该这样:
target_link_libraries(test -llibhappy)
target_link_libraries(test -lpthread)
把底层的库放到最后。