在Linux动态库Project中链接静态库时,遇到error adding symbols: Bad value的问题
2017-11-27 17:46
579 查看
现象:在生成某个动态库比如SDS_Utility.so的时候,需要静态链接某些库,如libboost_log.a, 报上述错误。
原因:静态库想链接进动态库,必须满足一定的条件,静态库需要加-fPIC选项编译,编译成Position Independent Code(也就是可重定位的代码),否则就会报错:error adding symbols: Bad value。
对这种静态库,有两种处理方法:
(1)使用 -fPIC 选项重新编译静态库。
(2)还有一种方式,就是在SDS_Utility.so中,不链接静态库。在使用SDS_Utility.so的bin(exe)程序中,链接该静态库。boost的静态库默认编译,没有加-fPIC选项,用该方法测试通过。
其他疑问:
(1)使用静态链接开关-Wl,-Bstatic -Wl,-lboost_log -Wl,-Bdynamic,是否可以?
答案:不行。一样报错:error adding symbols: Bad value。因为该静态库的代码缺少PIC特性。
原因:静态库想链接进动态库,必须满足一定的条件,静态库需要加-fPIC选项编译,编译成Position Independent Code(也就是可重定位的代码),否则就会报错:error adding symbols: Bad value。
对这种静态库,有两种处理方法:
(1)使用 -fPIC 选项重新编译静态库。
(2)还有一种方式,就是在SDS_Utility.so中,不链接静态库。在使用SDS_Utility.so的bin(exe)程序中,链接该静态库。boost的静态库默认编译,没有加-fPIC选项,用该方法测试通过。
其他疑问:
(1)使用静态链接开关-Wl,-Bstatic -Wl,-lboost_log -Wl,-Bdynamic,是否可以?
答案:不行。一样报错:error adding symbols: Bad value。因为该静态库的代码缺少PIC特性。
相关文章推荐
- 如何解决 error adding symbols: Bad value 问题
- 如何解决 error adding symbols: Bad value 问题
- python安装cryptography 报错: error adding symbols: Bad value
- 交叉编译opencv2.4.13出错:libzlib.a: error adding symbols: Bad value
- /usr/local/ssl/lib/libssl.a: error adding symbols: Bad value
- linux下安装jdk遇到问题:/lib/ld-linux.so.2: bad ELF interpreter
- linux下tar命令遇到error:"Error exit delayed from previous errors"的问题
- linux新加动态库后,使用中遇到的找不到的问题以及ldconfig讲解
- JAVA项目直接触之新手遇到的问题:引入web project运行tomcat后,出现:严重: Error listenerStart
- 关于lib/asm-offsets.c:1:0: error: bad value (armv5) for -march= switch问题解决办法
- 动态库编译时(引用静态库)could not read symbols: Bad value
- 如何解决J2ME开发中遇到提示 ALERT: java/lang/ClassFormatError: Bad version information.的问题
- /usr/lib/x86_64-linux-gnu/libboost_system.so.1.54.0:-1: error: error adding symbols: DSO missing fro
- linux下用gcc编译c程序时遇到的问题: error: stdio.h: 没有那个文件或目录
- /usr/lib/x86_64-linux-gnu/libboost_system.so: error adding symbols: DSO missing from command line
- 遇到问题-----mongodb-------Uncaught TypeError: Cannot read property 'value' of undefined
- linux用mysqldump备份数据库遇到问题Got error: 1045: Access denied for user 'root'@'localhost' (using password:
- ERROR Error when sending message to topic test_topic with key: null, value: 3 bytes……:部署Kafka时遇到两个问题
- /usr/local/lib/libz.a: could not read symbols: Bad value(64 位 Linux)
- /usr/local/lib/libz.a: could not read symbols: Bad value(64 位 Linux)