error adding symbols: DSO missing from command line通用解决方案

error adding symbols: DSO missing from command line,大型项目的代码编译时的常见问题。这开源项目中让人崩溃的问题如何解决呢?

发生原因

先检查binutils版本

ld -v

如果版本号<2.22,那么检查一下编译选项,去掉--no-copy-dt-needed-entries

如果版本号>=2.22,那么就需要改一下Makefile了。

一般报错的时候,会提示正在连接哪些库,比如说,报错时,提示了

xxx/xxx/libssl.so,xxxxx

那么解决办法,是在Makefile中找到LIBS参数,添加对应的库。添加方法如下:

-lssl

一般来讲,就是-l+xxx。 具体的库名字,可以参考这个库的名字,去掉lib。大多都没问题。 我在编译的时候,遇到几次这个问题,都是这样猜的名字。

如果哪位老手,有更靠谱的方法,希望不吝赐教。

邮箱:zcm@imzcm.com


作者

NewImaging
  • Shadust
  • 有你,真好~

评论