R_X86_64_32 & could not read symbols: Bad value编译
2014-09-23 11:24
423 查看
在suse64位平台上,libx a是一个静态库,可以编译成功,但另一动态库链接它时报如下错误: usr lib64 gcc x86_64-suse-linux 4 1 0 x86_64-suse-linux bin ld: usr local libx a(z o): relocatio
在suse64位平台上,libx.a是一个静态库,可以编译成功,但另一动态库链接它时报如下错误:
/usr/lib64/gcc/x86_64-suse-linux/4.1.0/../../../../x86_64-suse-linux/bin/ld: /usr/local/libx.a(z.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/usr/local/libx.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
解决的办法是在编译libx.a时加上“-fPIC”参数,这是一个编译期参数,很少人可能误以为只有共享库才使用到,实际上共享库和静态库的区别主要是链接时,而编译期是相同的,既然是编译参数,那么fPIC用在静态库中也没什么奇怪的了。
在suse64位平台上,libx.a是一个静态库,可以编译成功,但另一动态库链接它时报如下错误:
/usr/lib64/gcc/x86_64-suse-linux/4.1.0/../../../../x86_64-suse-linux/bin/ld: /usr/local/libx.a(z.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/usr/local/libx.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
解决的办法是在编译libx.a时加上“-fPIC”参数,这是一个编译期参数,很少人可能误以为只有共享库才使用到,实际上共享库和静态库的区别主要是链接时,而编译期是相同的,既然是编译参数,那么fPIC用在静态库中也没什么奇怪的了。
相关文章推荐
- R_X86_64_32 & could not read symbols: Bad value
- TTserver 编译/usr/local/lib/libbz2.a: could not read symbols: Bad value解决
- /usr/local/lib/libz.a: could not read symbols: Bad value(64 位 Linux)
- htslib库安装过程中的编译错误,libz.a: could not read symbols: Bad value
- 动态库编译时(引用静态库)could not read symbols: Bad value
- /usr/local/lib/libz.a: could not read symbols: Bad value(64 位 Linux)
- 安装ucspi-tcp的时候出现报错:/lib64/libc.so.6: could not read symbols: Bad value
- 编译动态库出现问题relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object
- 关于两个异常Undefined symbols for architecture x86_64和Could not find a nib (load) named 'Main'的解决方案
- /usr/local/lib/libltdl.a(ltdl.o): could not read symbols: Bad value
- recompile with -fPIC /usr/local/lib/libboost_python.a: could not read symbols: Bad value
- make error: libneon.a: could not read symbols: Bad value
- php make报错:/usr/local/openssl/lib/libssl.a: could not read symbols: Bad value
- /usr/local/lib/libz.a: could not read symbols: Bad value
- 解决 liblog4cpp.a: could not read symbols: Bad value
- /usr/local/lib/libz.a: could not read symbols: Bad value
- 编译动态库时遇到relocation R_X86_64_32 against `a local symbol'的错误
- 编译程序遇到问题 relocation R_X86_64_32 against `.rodata' can not be used when making a shared object;
- libpcap库在64位系统上编译产生错误原因:Could not read symbols:?
- Could not read symbols:Linux/UNIX系统下编译时,常见的一类报错信息解决方法