我用grep的其他议题,但他们不帮我=(在我工作的服务器,我没有sudo的privilegies,所以我安装PB与
的./configure --prefix = /家庭/用户名/本地
然后,我创建了“人”的例子源文件,并成功地与protoc编译。
我没有PKG-INFO =(我尝试编译它
克++ -I /家/用户名/本地/包括-L /家/用户名/本地/ lib中-lprotobuf -lpthread的main.cpp person.pb.cc
再有十亿simular错误,即
person.pb.cc:(.text+0x4cf):未定义参考`谷歌:: protobuf的::内部:: kEmptyString”
我认为,这是与链接的问题,而是如何解决呢?
回声$ LD_LIBRARY_PATH /家/用户名/ local / lib目录
在main.cpp中:
#include "person.pb.h"
...
谢谢。
把库底:
克++ -I /家/用户名/本地/包括-L /家/用户名/本地/ lib中的main.cpp person.pb.cc -lprotobuf -pthread
从GCC链接选项 :
-llibrary
-l library
Search the library named library when linking.
(The second alternative with the library as a separate argument
is only for POSIX compliance and is not recommended.)
It makes a difference where in the command you write this option;
the linker searches and processes libraries and object files in the
order they are specified.
Thus, `foo.o -lz bar.o' searches library `z' after file foo.o but
before bar.o. If bar.o refers to functions in `z', those functions
may not be loaded.
此外,使用-pthread
代替-lpthread
作为-pthread
可用于预处理器和连接设置标志。
库链接旗帜走在编译器的参数的结尾:
克++ -I /家/用户名/本地/包括-L /家/用户名/本地/ lib中的main.cpp person.pb.cc -lprotobuf -lpthread