我正在尝试使用新版本的protobuf编译我的代码(当前已使用自定义版本进行编译,我想通过apt-get使用ubuntu随附的版本进行编译)
在项目设置中,我添加了-lprotobuf
.obj/Test.pb.o: In function `test_ns::protobuf_AssignDesc_Test_2eproto()':
<<path to file>>/Test.pb.cc:115: undefined reference to `google::protobuf::DescriptorPool::FindFileByName(std::string const&) const'
出现错误的行('Test.pb.cc'):
void protobuf_AssignDesc_Test_2eproto() {
protobuf_AddDesc_Test_2eproto();
const ::google::protobuf::FileDescriptor* file =
::google::protobuf::DescriptorPool::generated_pool()->FindFileByName(
"Test.proto");
我可以看到尝试查找文件“ Test.proto”时引起的错误,但该错误存在于另一个目录中,并且protoc命令使用该错误生成了Test.pb.cc和Test.pb.h。文件
答案 0 :(得分:0)
仅出于原因,由ubuntu提供的原型就用不同的 ABI 进行了编译,并与我们项目中的ABI相匹配,从而解决了问题