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

Ale*_*lex 20 c++ mingw protocol-buffers

我正在使用Codeblocks作为我的MingGW IDE.我正在尝试使用谷歌协议缓冲区,但我在构建protobuf时遇到了麻烦.

protobuf的自述文件说:

如果您使用的是Cygwin或MinGW,请按照上面的Unix安装说明进行操作.

Unix指令说:

要构建和安装C++ Protocol Buffer运行时和Protocol Buffer编译器(protoc),请执行以下命令: $ ./configure $ make $ make check $ make install

我不知道如何在Windows中执行这些操作,因为"configure"是一个Unix脚本,我不知道如何执行它,或者其他命令.

有人可以更详细地解释如何在Windows上使用MinGW构建protobuf吗?

Pet*_*ers 26

这对我有用:

  1. 您需要使用mingw安装MSYS.这是一个类似于unix的最小shell环境,允许您配置/生成大多数unix包.阅读有关如何安装它的mingw文档(使用mingw-get或GUI安装程序).

  2. 一旦安装了MSYS,就应该在开始菜单中有一个名为"MinGW Shell"的快捷方式.这会打开一个带有bash的控制台.

  3. 将源tarball解压缩到MSYS主目录.我在"D:\ prog"中安装了mingw,因此目录是"D:\ prog\MinGW\msys\1.0\home\<username>".您可以从shell提示符中告诉您的MSYS用户名.完成后,您应该有一个目录"D:\ prog\MinGW\msys\1.0\home\<用户名>\protobuf-2.4.1".

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

    cd protobuf-2.4.1

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

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

    --prefixparamater确保protobuf的安装在MinGW的目录树,而不是MSYS目录,这样你就可以建立MSYS壳外(例如用代码块...)

  6. 运行make:

    make

  7. 安装:

    make install

  8. 而已.您现在应该能够使用protobuf编译项目.
    你应该能够:

    • protoc从您的项目/ makefile 调用
    • #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.尝试启动protoc时.
    我不得不禁用Avira实时扫描仪和make clean && make && make install

编辑#2:

这个帖子已经老了很多,而且mingw不再等于mingw了.在这个时代,我宁愿推荐MSYS2,它带有一个ArchLinux的pacman包管理器的端口,一个最新的,更好的工作(c ++ 11 std :: thread support!)mingw fork for 32和64 bit,and一个protobuf包,你只需要安装并保持良好状态.

去这里下载!

希望这可以帮助!
彼得