摘要:开始,其中的开始把默认打开,这样一来,不会再自动递归地解析链接的,而需要由用户来一一指定。检查的版本,方法很简单这样做的好处在于当有变化,甚至接口发生变化时,编译时就能报错。
最近项目正经历着一次更新,一系列编译工具都进行了大版本的升级,随时而来的是,原本正常编译的代码出现了大量的warning,最终编译失败,其中一个问题困扰了比较长的时间,虽然fix的方法不难,但是一直不清楚根本原因,通过大量的google,终于找到的原因,特地记录一下。
先把主要的参考文章写一下:
Understanding DSO link change
Tool Chain Transition
主要是下面这行错误:
error adding symbols: DSO missing from command line
场景是:
我们有一个shared libA中,定义了函数foo()
另一个静态库libB显示地链接了libA
一个可执行文件bin_c显示地链接了libA
那么问题来了,如果bin_c中调用了函数foo(),那么编译能不能通过?
在binutils<2.22时,ld正常完成了,bin_c对于foo的调用经由libB,传递到了libA,链接成功。
但是当binutils>=2.22时,编译出错了,ld会报上面的错,告诉你foo这个symbol解析不到,这时,我们需要编译bin_c时,显示地链接libA才可以通过。
binutils2.22开始,其中的ld开始把--no-copy-dt-needed-entries默认打开,这样一来,ld不会再自动递归地解析链接的lib,而需要由用户来一一指定。
PS:检查binutils的版本,方法很简单:
ld -v
这样做的好处在于当libA有变化,甚至foo接口发生变化时,编译时就能报错。
另外,还以一个ld的选项--allow-shlib-undefined,作用是允许在动态库中存在未解析到的函数symbol,至于理由可以自行查看man ld,因为有些项目就是在运行时才能决定使用的动态库, ld的manual中也举了一个相应的例子。
时间仓促,没有贴代码上来,而且一定还有没有深入到的地方,日后再来完善,如果有不对的地方,欢迎指正!
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/7748.html
摘要:而且我们可以看到他自动帮我们安装了,,等等需要注意的是最后会出现这里选择才能把加入环境变量中,然后才能使用不然之后就得手动配置。来安装支持的。步骤中下载太慢了,需要个小时,还是直接在线安装吧,先下载这个,然后这个只需要分钟左右。 前言 最近上了几门深度学习的公开课,还是觉得不过瘾,总觉得要搞一个框架来试试。那么caffe,tensorflow,torch等等选哪一个呢?经过一番比较我还...
摘要:而且我们可以看到他自动帮我们安装了,,等等需要注意的是最后会出现这里选择才能把加入环境变量中,然后才能使用不然之后就得手动配置。来安装支持的。步骤中下载太慢了,需要个小时,还是直接在线安装吧,先下载这个,然后这个只需要分钟左右。 前言 最近上了几门深度学习的公开课,还是觉得不过瘾,总觉得要搞一个框架来试试。那么caffe,tensorflow,torch等等选哪一个呢?经过一番比较我还...
摘要:而且我们可以看到他自动帮我们安装了,,等等需要注意的是最后会出现这里选择才能把加入环境变量中,然后才能使用不然之后就得手动配置。来安装支持的。步骤中下载太慢了,需要个小时,还是直接在线安装吧,先下载这个,然后这个只需要分钟左右。 前言 最近上了几门深度学习的公开课,还是觉得不过瘾,总觉得要搞一个框架来试试。那么caffe,tensorflow,torch等等选哪一个呢?经过一番比较我还...
摘要:而且我们可以看到他自动帮我们安装了,,等等需要注意的是最后会出现这里选择才能把加入环境变量中,然后才能使用不然之后就得手动配置。来安装支持的。步骤中下载太慢了,需要个小时,还是直接在线安装吧,先下载这个,然后这个只需要分钟左右。 前言 最近上了几门深度学习的公开课,还是觉得不过瘾,总觉得要搞一个框架来试试。那么caffe,tensorflow,torch等等选哪一个呢?经过一番比较我还...
摘要:网上很多的解决办法是使用这个压缩包来配置,但是在一直无法正常的进行编译,同时也无法正常的使用命令添加到的目录下,同时大部分的说法是重新编译,对于已经有线上业务的环境这种做法非常不靠谱,没办法平滑的迁移。 一、环境配置 Nginx : Tengine(2.1.1)/ Nginx(1.6.2) 二、安装步骤1、下载/ngx_http_enhance_mp4_module执行命令: cd ...
阅读 1292·2021-11-23 09:51
阅读 3436·2021-09-26 09:46
阅读 1967·2021-09-22 10:02
阅读 1523·2019-08-30 15:56
阅读 3143·2019-08-30 12:51
阅读 2047·2019-08-30 11:12
阅读 1919·2019-08-29 13:23
阅读 2171·2019-08-29 13:16