C++ 使用MinGW在Windows上构建protobuf

C++ 使用MinGW在Windows上构建protobuf,c++,mingw,protocol-buffers,C++,Mingw,Protocol Buffers,我一直在遵循Peter回答中的步骤,但是make没有完成,并且出现错误 我在Win64上,安装了MinGW开发者工具包、mingw32 base、MinGW-gcc-g++、msys base以及另外的mingw32-phtreads-w32 在MinGW/msys/1.0下,我创建文件夹/home/,并粘贴从下载的protobuf-3.1.0源代码 我打开一个MSYS外壳,cd进入protobuf目录并运行/autoconfig:日志是 现在,我不喜欢日志中的第一件事是: configure

我一直在遵循Peter回答中的步骤,但是
make
没有完成,并且出现错误


我在Win64上,安装了MinGW开发者工具包、mingw32 base、MinGW-gcc-g++、
msys base
以及另外的
mingw32-phtreads-w32

MinGW/msys/1.0
下,我创建文件夹
/home/
,并粘贴从下载的
protobuf-3.1.0
源代码

我打开一个MSYS外壳,
cd
进入protobuf目录并运行
/autoconfig
:日志是

现在,我不喜欢日志中的第一件事是:

configure:16556: checking for the pthreads library -lpthreads
configure:16589: gcc -o conftest.exe     conftest.c -lpthreads -lz  >&5
c:/mingw/bin/../lib/gcc/mingw32/5.3.0/../../../../mingw32/bin/ld.exe: cannot find -lpthreads
为什么在我安装了pthreads之后,它找不到它

然后,我继续执行
make
并获取
protoc.exe已停止工作
,并显示以下崩溃信息:

  Problem signature:
  Problem Event Name:   APPCRASH
  Application Name: protoc.exe
  Application Version:  0.0.0.0
  Application Timestamp:    580a23df
  Fault Module Name:    libprotobuf-11.dll
  Fault Module Version: 0.0.0.0
  Fault Module Timestamp:   580a225f
  Exception Code:   c0000005
  Exception Offset: 001171cd
  OS Version:   6.1.7601.2.1.0.256.4
  Locale ID:    2057
  Additional Information 1: 4c0d
  Additional Information 2: 4c0d4d78887f76d971d5d00f1f20a433
  Additional Information 3: 4c0d
  Additional Information 4: 4c0d4d78887f76d971d5d00f1f20a433
壳的末端是

make[2]: *** [unittest_proto_middleman] Error 5
make[2]: Leaving directory `/home/ok1011/protobuf-3.1.0/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/ok1011/protobuf-3.1.0'
make: *** [all] Error 2
在这里你可以找到制造商和制造商。我不是唯一一个这样的人


你知道问题出在哪里,怎么解决吗

您需要默认使用pthreads库附带的64位版本的MinGW。或者你需要一个旧的pthread端口来安装MinGW,以防你必须使用32位版本。你的环境不合适,我想…用MinGW安装合适的
MSYS
你能不用测试就编译它吗?I小更新:我用MinGW64安装了它,使用cmake指令而不是*nix style
make
,但MinGW 64无法在我的另一台电脑上安装。因此我尝试在另一台电脑上安装MSYS2…但设置所有依赖项是一件痛苦的事情。所以,我放弃了我在Windows上的努力,我在linux上使用虚拟机。到目前为止,一切正常。