首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当使用g++-5时,protobuf不会在osx上编译。

当使用g++-5时,protobuf不会在osx上编译。
EN

Stack Overflow用户
提问于 2016-03-02 21:08:33
回答 1查看 346关注 0票数 0

请参阅以下基于c++教程 on 原生质的示例项目。

地址簿

我使用以下方法在OSX10.10.5上安装了protobuf:

brew install protobuf

我也通过brew安装安装了g++-5,但是已经有一段时间了。为什么这不能用g++编译呢?

失败的命令是:

g++-5 -g -O2 -L/usr/local/Cellar/protobuf/2.6.1/lib -lprotobuf -D_THREAD_SAFE -o main main.o addressbook.pb.o

结果是:Undefined symbols for architecture x86_64: "google::protobuf::MessageFactory::InternalRegisterGeneratedFile(char const*, void (*)(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&))", referenced from: tutorial::protobuf_AddDesc_addressbook_2eproto() in addressbook.pb.o ...

我只是在测试。我没有理由不在osx上使用clang++。我只是好奇。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-02 21:13:25

这是因为clang,g++-5和g++-4.x的ABI不同。您首先需要用g++-5重新编译protobuf本身,然后再用-lprotobuf将其链接到您的程序。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35758073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档