/usr/bin/ld: /usr/local/lib/libprotobuf.a(common.o): relocation R_X86_64_32S against `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep::_S_empty_rep_storage@@GLIBCXX_3.4' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libprotobuf.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
这个提示是说,pb编译的时候没有带 -fPIC。那么重新编译的时候应该这样:
./configure --prefix=/data/web_install/protobuf-2.4.1 CFLAGS=-fPIC CXXFLAGS=-fPIC --with-pic=PIC
重新再编译,ok了
php扩展编译的时候,其实是一个动态扩展调用静态的pb库问题。