如何在windows上安装protobuf?(Win7x64/MinGW)

How to install protobuf on windows? (Win7x64/MinGW)

本文关键字:Win7x64 MinGW protobuf windows 安装      更新时间:2023-10-16

C++-Protobuf不在VS2012中编译。现在我想使用MinGW在windows上编译它。有人能给我一些关于如何在Win7 x64上编译protobuf的简短词条吗。我已经用GUI安装程序安装了MinGW。谷歌在MinGW安装通知中写道,我应该参考Unix安装说明。但我不知道如何在窗户上使用自动工具。

编辑

好吧,这就是我迄今为止所做的:

$ mount C:/ WinDir
$ cd ./[...]/protobuf.2.4.1
$ ./configure
$ minGW32-make.exe
$ minGW32-make.exe check

minGW32-make.exe运行时没有错误,但没有运行任何测试,我找不到libprotobuf.lib。有一些libprotobuf.dll,但我需要这个lib,不是吗?。

您应该在安装MinGW的同时拥有一个MSys控制台。这个控制台提供了一个类似linux的环境,您应该能够在其中正常使用自动工具。

如果没有安装MSys,您也可以从MinGW站点获取它。

cd到您的源目录,并尝试通常的:

$ ./configure
$ make

有些库在Windows上会出现问题,但大多数库在使用MinGW和MSys时都能很好地编译。如果遇到特定问题,请回来为您的问题添加更多信息。


编辑:

minGW32-make.exe运行时没有错误,但没有运行任何测试,我找不到libprotobuf.lib。有一些libprotobuf.dll,但我需要这个库,不是吗?。

通常对于动态库,您会得到protobuf.dll(动态库)和libprotobuf.a(静态包装库)。

链接时,只需将-lprotobuf传递给链接器,它将同时查找libprotobuf.aprotobuf.lib

(.lib是另一种静态库格式,部分由MinGW处理,但不是本地的。)

使用MinGW工具链时,将无法使用.lib文件。相反,您可以直接链接到dll。MinGW Wiki对此进行了解释。

我可以同时获得dll和lib。这是当您不想要静态lib文件,而想要使用dll和lib文件时。您需要在Protobuf代码中进行以下更改:

  1. 在VS.或任何其他编辑器中打开项目。我使用VS2015
  2. 在libProtoBuf项目设置中,在C/C++预处理器中添加以下标志。PROTOBUF_USE_DLLS;LIBPROTOBUF_EXPORTS;这些标志将使用dllexport 从形式库导出信息

  3. 在您使用Protobuf的客户端代码中,定义:Protobuf_USE_DLLS。这将使protobuf包括使用dllimport。

完成步骤2后,您将在输出文件夹中看到dll和lib。否则,您将始终只看到dll而不看到lib文件。

希望这能有所帮助。如果没有,请在这里留言,我可以帮你解决这个问题。