如何使用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