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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用MinGW在Windows中构建Google的protobuf相关的知识,希望对你有一定的参考价值。

参考技术A 版本差异。一般情况下无大关系。

如何在 Windows 中使用 MinGW 构建 OpenSSL? [关闭]

【中文标题】如何在 Windows 中使用 MinGW 构建 OpenSSL? [关闭]【英文标题】:How to build OpenSSL with MinGW in Windows? [closed] 【发布时间】:2012-03-11 20:52:39 【问题描述】:

我想用 MinGW 在 Windows 中构建 OpenSSL, 我怎样才能做到这一点?请帮帮我。 谢谢。

【问题讨论】:

【参考方案1】:

这是我写的个人指南的摘录。此后它已被转换为script(很明显,请查看 OpenSSL 部分)。它假定您已经安装了工作正常的 MinGW,并且您有工作的 MSys 控制台。


OpenSSL

要构建 OpenSSL,您需要一个有效的 Perl installation。

从its official website 下载 OpenSSL 并解压缩存档。

Windows 32/64 位 - MinGW

您必须从 MSys 控制台运行这些命令。

对于 32 位:

perl 配置 mingw no-shared no-asm --prefix=/c/OpenSSL

对于 64 位:

perl 配置 mingw64 no-shared no-asm --prefix=/C/OpenSSL-x64

然后:

依赖

制作

进行安装

如果您指定了任何 no-... 选项,则仅在最新的 OpenSSL 版本上才需要 make depend 行。

请注意,这将在静态模式下编译 OpenSSL。

如果您在某个时候收到“make (e=2):”错误,请确保您的 PATH 中没有另一个“make.exe”,或者只需输入 /bin/make 而不是 make


当然,您可能需要使用其他选项(例如动态链接或启用 asm)对其进行编译。因此,请随时查看perl Configure 提供的帮助,以了解有关可用选项的更多信息。

【讨论】:

感谢您的帮助。我完成了您的指令并构建了 OpenSSL,但它不会生成 DLL 文件?它在哪里? @HarryFox:您可能已经注意到no-shared 参数明确禁用共享库生成。因为在 Windows 上,共享库是 DLL,所以你有你的答案:) 现在我不必构建 OpenSSL 的 DLL,但我想用 shared 替换 no-shared 可能会成功。 根据我 [非常有限的] 经验,Strawberry Perl(5.14.2.1 for x64)在 MSYS 中挂起。 ActivePerl 效果很好。 对于较新版本的 openssl,如果您将任何 no-xyz 标志传递给 Configure,则需要在运行 make 之前运行 make depend @3noch:库没有“本机 Windows 二进制格式”之类的东西。您可以生成可供特定编译器工具链使用的库。在 Windows 上可以是 cl.exe (Microsoft) 或 gcc.exe (MinGW)。现在对于 C 库,有时两个编译器都可以使用生成的库,因为它们使用类似的函数修饰机制。如果您想为 Visual Studio 构建 OpenSSL,请阅读我提供的链接,因为它也包含相应的说明;)

以上是关于如何使用MinGW在Windows中构建Google的protobuf的主要内容,如果未能解决你的问题,请参考以下文章

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

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

如何在 Windows 上使用 MINGW 构建 clang?

在 Windows 7 中使用 mingw 构建 gumbo-parser dll

使用 MinGW 在 Windows 上构建 GLEW 1.7.0

在 MinGW 构建后,Qt 工具栏按钮图标在 Windows 中显示,但在使用 g++ 构建后消失