/usr/local/ssl/lib/libssl.a: error adding symbols: Bad value
2017-08-24 19:49
1316 查看
一、背景
编译第三方库A的时候提示依赖openssl库。
二、编译openssl库
去官网下载最新版本的openssl-1.0.2l.tar.gz
tar -zxvf openssl-1.0.2l.tar.gz
cd openssl-1.0.2l
完成编译,默认openssl的库安装在/usr/local/ssl目录下。
三、引用openssl库
第三方库【A】编译引用openssl的时候(make的时候),提示这个错误:
四、基本原理
五、重新编译
六、注意
七、测试
再make第三方库【A】的时候,没有报错,编译通过。
使用其他静态库遇到类似问题,此方法同样适用。
编译第三方库A的时候提示依赖openssl库。
二、编译openssl库
去官网下载最新版本的openssl-1.0.2l.tar.gz
tar -zxvf openssl-1.0.2l.tar.gz
cd openssl-1.0.2l
./config make make install
完成编译,默认openssl的库安装在/usr/local/ssl目录下。
三、引用openssl库
第三方库【A】编译引用openssl的时候(make的时候),提示这个错误:
/usr/local/ssl/lib/libssl.a: error adding symbols: Bad value
四、基本原理
我们都知道在生成一个动态库时需要指定-fPIC,这是创建动态库所要求的,共享库被加载是在内存中的位置是不固定的,是一个相对的位置。 那么在生成静态库时通常不指定-fPIC, 可是在64bit编译使用静态库就会提示需要-fPIC重新编译该库。 由于openssl编译静态库时,没有使用-fPIC选项,使得编译出来的静态库没有重定位能力。 这样在64bit机器上编译出来的静态库如果不指定-fPIC选项几乎全部不能使用。 因此需要重新加上-fPIC从新编译openssl
五、重新编译
./config -fPIC make depend make install
六、注意
删除openssl-1.0.2l,重新解压。 因为编译过的环境里执行【重新编译】动作看起来无效。
七、测试
再make第三方库【A】的时候,没有报错,编译通过。
使用其他静态库遇到类似问题,此方法同样适用。
相关文章推荐
- php make报错:/usr/local/openssl/lib/libssl.a: could not read symbols: Bad value
- 交叉编译opencv2.4.13出错:libzlib.a: error adding symbols: Bad value
- /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)
- qt opencv编译错误 /usr/local/lib/libopencv_imgcodecs.so.3.1:-1: error: error adding symbols: DSO missing from command line
- recompile with -fPIC /usr/local/lib/libboost_python.a: could not read symbols: Bad value
- /usr/local/lib/libltdl.a(ltdl.o): could not read symbols: Bad value
- /usr/local/lib/libz.a: could not read symbols: Bad value
- apache 在 加载openssl 模块时出现 “/usr/local/ssl/lib/libssl.a: could not read symbols: Bad value”错误解决方案
- /usr/local/lib/libz.a: could not read symbols: Bad value
- 如何解决 error adding symbols: Bad value 问题
- 如何解决 error adding symbols: Bad value 问题
- python安装cryptography 报错: error adding symbols: Bad value
- OpenCV编译错误:/usr/local/lib/opencv_core.so.3.1:error adding symols: DSO missing from command line
- 在Linux动态库Project中链接静态库时,遇到error adding symbols: Bad value的问题
- symbol lookup error: /usr/local/lib/libsvn_subr-1.so.0: undefined symbol: apr_atomic_xchgptr
- /usr/lib/x86_64-linux-gnu/libboost_system.so.1.54.0: error adding symbols: D
- error: could not create '/usr/local/lib/python2.7/dist-packages/jieba': Permission denied
- 关于lib/asm-offsets.c:1:0: error: bad value (armv5) for -march= switch问题解决办法
- OSError: [Errno 13] 权限不够: '/usr/local/lib/python2.7/dist-packages/cmake'