gpt4 book ai didi

c++ - 带有 Protocol Buffer 的程序无法使用 MinGW-w64 : "undefined reference to google::protobuf::..." 进行编译

转载 作者:太空宇宙 更新时间:2023-11-04 13:44:43 30 4
gpt4 key购买 nike

我已经从 Debian Jessie 存储库安装了 libprotobuf-dev=2.6.0-4protobuf-compiler=2.6.0-4 包。现在我正在尝试编译一个使用来自 Google Developers example 的“addressbook.proto”文件的程序。使用 MinGW-w64 编译器。我正在使用 Ubuntu 14.04。

使用这个命令程序运行:

$ g++ main.cpp addressbook.pb.cc -lprotobuf

但我也想为 Windows 编译。

我添加了符号链接(symbolic link):/usr/include/google -> /usr/i686-w64-mingw32/include/google

$ i686-w64-mingw32-g++ main.cpp addressbook.pb.cc -lprotobuf
/usr/bin/i686-w64-mingw32-ld: cannot find -lprotobuf
collect2: error: ld returned 1 exit status

图书馆位置仍然无效:

$ i686-w64-mingw32-g++ -L /usr/lib/i386-linux-gnu/ main.cpp addressbook.pb.cc -lprotobuf
/tmp/ccB1VJyR.o:main.cpp:(.text$_ZN6google8protobuf8internal27GetEmptyStringAlreadyInitedEv[__ZN6google8protobuf8internal27GetEmptyStringAlreadyInitedEv]+0x7): undefined reference to `google::protobuf::internal::empty_string_'
/tmp/ccB1VJyR.o:main.cpp:(.text$_ZN6google8protobuf8internal27GetEmptyStringAlreadyInitedEv[__ZN6google8protobuf8internal27GetEmptyStringAlreadyInitedEv]+0x2f): undefined reference to `google::protobuf::internal::empty_string_'
/tmp/ccPz4uiI.o:addressbook.pb.cc:(.text+0x78): undefined reference to `google::protobuf::DescriptorPool::generated_pool()'
/tmp/ccPz4uiI.o:addressbook.pb.cc:(.text+0x87): undefined reference to `google::protobuf::DescriptorPool::FindFileByName(std::string const&) const'
...

最佳答案

libprotobuf-dev 包含库 header 和为您的系统预构建的二进制文件。如果您正在交叉编译,您还需要将库从源代码编译到目标系统。库源目录中的“./configure CC=i686-w64-mingw32-g++”之类的东西应该可以完成这项工作。

关于c++ - 带有 Protocol Buffer 的程序无法使用 MinGW-w64 : "undefined reference to google::protobuf::..." 进行编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26436386/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com