CMakeLists指定链接顺序(error adding symbols: DSO missing from command line)

2022/8/2 23:22:51

本文主要是介绍CMakeLists指定链接顺序(error adding symbols: DSO missing from command line),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

转载

https://www.cnblogs.com/Hocker/p/8269506.html

https://www.cnblogs.com/OCaml/archive/2012/06/18/2554086.html#sec-1-1

 

关于链接库的顺序问题,我看了下链接库的顺序问题一文,正常的情况下,链动态接库时是从左至右开始链接,如果出现了顺序错误,gcc自动帮我们重定位,我认为保险的方式是做好库的顺序。

那我这里稍微整理了下链接顺序。

  1. 高层静态链接库

  2. 底层依赖库

  3. 高层动态链接库

  4. 其他无关系链接库

 

举个栗子:

target_link_libraries(test -lpthread)

target_link_libraries(test -llibhappy)

假设libhappy.so需要链接pthread。当我们用上面的顺序来指定链接库时,就会报错,提示找不到pthread。这里应该这样:

target_link_libraries(test -llibhappy)

target_link_libraries(test -lpthread)

把底层的库放到最后。



这篇关于CMakeLists指定链接顺序(error adding symbols: DSO missing from command line)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程