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

时间:2016-03-02 21:08:34

标签: c++ macos gcc protocol-buffers

根据c++ tutorial上的protobuf查看以下示例项目。

https://github.com/cskeeters/protobuf_addressbook

我使用:

在osx 10.10.5上安装了protobuf

function myFunc() { var name = document.getElementById("inputName").value; var city = document.getElementById("inputCity").value; var day = document.getElementById("inputDay").value; var month = document.getElementById("inputMonth").value; var year = document.getElementById("inputYear").value; var changeSTR = document.getElementById("resultTXT").innerHTML.toString(); var words = changeSTR.split(/[ ,.]+/); words[3] = name; words[11] = city; words[16] = day; words[17] = month; words[19] = year; var resultSTR = words.toString(); alert(resultSTR); }

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

失败的命令是:

brew install protobuf

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

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

1 个答案:

答案 0 :(得分:1)

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