gpt4 book ai didi

c++ - 如何使用 MinGW 在 Windows 中构建 Google 的 protobuf?

转载 作者:IT老高 更新时间:2023-10-28 21:51:47 50 4
gpt4 key购买 nike

我在 MingGW 中使用 Codeblocks 作为我的 IDE。我正在尝试使用谷歌 Protocol Buffer ,但我在构建 protobuf 时遇到了问题。

protobuf 的自述文件说:

If you are using Cygwin or MinGW, follow the Unix installation instructions, above.

Unix 指令说:

To build and install the C++ Protocol Buffer runtime and the Protocol Buffer compiler (protoc) execute the following:
$ ./configure
$ make
$ make check
$ make install

我不知道如何在 Windows 中执行这些操作因为“配置”是一个 Unix 脚本并且我不知道如何执行它,或者其余的命令。

谁能更详细地解释一下我可以在 Windows 上使用 MinGW 构建 protobuf 吗?

最佳答案

这对我有用:

  1. 你需要用mingw安装MSYS。这是一个最小的类 unix shell 环境,可让您配置/制作大多数 unix 包。阅读 mingw 文档,了解如何安装(使用 mingw-get 或 GUI 安装程序)。

  2. 安装 MSYS 后,您应该在开始菜单中有一个快捷方式,名为“MinGW Shell”。这会打开一个带有 bash 的控制台。

  3. 将源压缩包解压到您的 MSYS 主目录。我在“D:\prog”中安装了mingw,所以目录是“D:\prog\MinGW\msys\1.0\home\ ”。您可以从 shell 提示符中告知您的 MSYS 用户名。完成后,您应该有一个目录“D:\prog\MinGW\msys\1.0\home\ \protobuf-2.4.1”。

  4. 在shell提示符下,切换到protobuf目录:

    cd protobuf-2.4.1

  5. 运行配置脚本(注意反引号):

    ./configure --prefix=`cd /mingw; pwd -W`

    --prefix参数确保 protobuf 安装在 mingw 目录树而不是 MSYS 目录中,因此您可以在 MSYS shell 之外构建(例如,使用 CodeBlocks...)

  6. 运行make:

    make

  7. 安装:

    make install

  8. 就是这样。您现在应该可以使用 protobuf 编译您的项目了。
    您应该能够:

    • 调用 protoc从你的项目/makefiles
    • #include <google/protobuf/message.h>
    • 链接到 -lprotobuf-lprotobuf-lite

HTH
彼得

编辑:使这更加最新。我尝试使用当前版本的 MinGW 和 protobuf 2.5.0 设置新 PC,这些是我遇到的问题:

  1. 开始菜单中没有“MinGW Shell”快捷方式。
    由于某种原因,当前的 MinGW 安装无法安装它。
    但是有一个msys.bat<Mingw home>\msys\1.0这带来了一个带有 bash 的控制台。在某处创建该批处理文件的快捷方式。

  2. gcc 在 MSYS shell 中不起作用。
    我不得不手动运行一个安装后的批处理文件并在那里回答问题。这会设置在 MSYS 环境中挂载 mingw 目录的 fstab 条目。
    您需要运行 <Mingw home>\msys\1.0\postinstall\pi.bat

  3. 我的 Avira 防病毒软件干扰了 protobuf 编译。
    它提示生成的 protoc.exe 是“TR/Crypt.XPACK.Gen”木马并阻止对该文件的访问,导致构建损坏。
    我收到了类似 protoc:./.libs/lt-protoc.c:233: FATAL: couldn't find protoc. 的错误消息尝试启动协议(protocol)时。
    我不得不禁用 Avira 实时扫描程序和 make clean && make && make install再次

编辑#2:

这篇文章已经过时了,mingw 不再等于 mingw。在这个时代,我宁愿推荐 MSYS2,它带有 ArchLinux 的 pacman 包管理器的一个端口,一个最近的、工作更好的(c++11 std::thread 支持!) mingw fork,用于 32 位和 64 位,以及一个 protobuf 包,您只需要安装它就可以了。

Go here下载!

希望这会有所帮助!
彼得

关于c++ - 如何使用 MinGW 在 Windows 中构建 Google 的 protobuf?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9243816/

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