如何在windows上安装protobuf?(Win7x64/MinGW)
How to install protobuf on windows? (Win7x64/MinGW)
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.a
和protobuf.lib
。
(.lib
是另一种静态库格式,部分由MinGW处理,但不是本地的。)
使用MinGW工具链时,将无法使用.lib
文件。相反,您可以直接链接到dll。MinGW Wiki对此进行了解释。
我可以同时获得dll和lib。这是当您不想要静态lib文件,而想要使用dll和lib文件时。您需要在Protobuf代码中进行以下更改:
- 在VS.或任何其他编辑器中打开项目。我使用VS2015
-
在libProtoBuf项目设置中,在C/C++预处理器中添加以下标志。PROTOBUF_USE_DLLS;LIBPROTOBUF_EXPORTS;这些标志将使用dllexport 从形式库导出信息
-
在您使用Protobuf的客户端代码中,定义:Protobuf_USE_DLLS。这将使protobuf包括使用dllimport。
完成步骤2后,您将在输出文件夹中看到dll和lib。否则,您将始终只看到dll而不看到lib文件。
希望这能有所帮助。如果没有,请在这里留言,我可以帮你解决这个问题。
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- 如何将C++中的库和头与MinGW一起使用
- 为什么与常规GCC不同,即使有"学究性错误",MinGW-GCC也能容忍丢失的返回类型
- 无法在windows上使用mingw将sqlite3与c连接
- MinGw 无法从 cmake 编译测试文件
- MSYS2 MinGW程序包中缺少grpc_cpp_plugin协议
- Mingw-64 在构建和安装后不会编译 openCV 代码
- 安装MinGW后C++编译器不起作用?
- 当我尝试通过 mingw 使用 CMake 和 SFML 库编译项目时出错
- 如何在 Linux for Windows 上通过 MinGW 构建静态 ICU 的 Boost
- 使用 MinGW 在 Windows 上安装 GMP 时出错
- VSCode - C++ - MinGW 编译器的问题
- C++:如何在Windows 10上使用编译器MinGW 9.2.0安装OpenCV
- MINGW - 正确运行函数所需的 cdecl
- 尝试在Windows上执行C++时出错(通过MinGW编译)
- 分段 Linux Ubuntu 中的 g++ 错误,但在 Windows 中的 g++/MingW 中,在 C++ 中打
- SFML 库 - 在 MinGW 构建期间未找到错误
- 使用 MinGW 在 Windows 上构建 GLEW 时遇到问题
- 如何在windows上安装protobuf?(Win7x64/MinGW)
- 无法编译C++OpenCV2.4.9、Win7x64、Eclipse Mars、MinGW