推荐: blog.csdn.net/aquester https://github.com/eyjian https://www.cnblogs.com/aquester http://blog.chinaunix.net/uid/20682147.html
全部博文(595)
分类: C/C++
2013-01-07 15:28:07
Aquester2017-02-08 14:30:31
Aquester:64位机器上编译,遇到如下链接错误,依赖的thrift为thrift-0.9.0:
/bin/ld: /usr/local/thrift/lib/libthrift.a(Thrift.o): relocation R_X86_64_32S against `_ZNSs4_Rep20_S_empty_rep_storageE\' can not be used when making a shared object; recompile with -fPIC
/usr/local/thrift/lib/libthrift.a: could not read symbols: 错误的值
解决办法:设置CXXFLAGS,加上-fPIC,重编译thrift,但注意不能是CPPFLAGS,如下所示
./configure --prefix=/usr/local/thrift-0.9.0 --with-boost=/usr/local/boost --with-libevent=/us
如下所示的链接错误,可采取同样的方法重编译protobuf,依赖的protobuf为protobuf-2.6.1
/bin/ld: /usr/local/protobuf/lib/libprotobuf.a(common.o): relocation R_X86_64_32S against `_ZTVN6google8protobuf7ClosureE\' can not be used when making a shared object; recompile with -fPIC
/usr/local/protobuf/lib/libprotobuf.a: could not read symbols: 错误的值
重编译protobuf:
./configure --prefix=/usr/local/protobuf-2.6.1 --with-zlib CXXFLAGS=\"-fPIC\"
注意configure后要做下make cle
Aquester2017-02-08 14:27:39
64位机器上编译,遇到如下链接错误,依赖的thrift为thrift-0.9.0:
/bin/ld: /usr/local/thrift/lib/libthrift.a(Thrift.o): relocation R_X86_64_32S against `_ZNSs4_Rep20_S_empty_rep_storageE\' can not be used when making a shared object; recompile with -fPIC
/usr/local/thrift/lib/libthrift.a: could not read symbols: 错误的值
解决办法:设置CXXFLAGS,加上-fPIC,重编译thrift,但注意不能是CPPFLAGS,如下所示
./configure --prefix=/usr/local/thrift-0.9.0 --with-boost=/usr/local/boost --with-libevent=/us