我正在尝试编译我使用zlib编写的程序的32位版本(MinGW)。到现在为止,我从来没有编译32位,所以我从源代码(libz.a)编译的zlib版本是64位。我试图在zlib-1.2.5目录中重新运行makefile,但它只编译64位版本的libz.a.
我似乎无法找到构建32位的选项。
有谁知道怎么做?
谢谢!
Jeffrey Kevin Pry
答案 0 :(得分:3)
检查配置文件,您可以看到一些环境
在64位debian上,以下命令行将构建32位版本的libz
CFLAGS=-m32 ./configure
答案 1 :(得分:0)
事实证明我必须得到32位版本的MinGW并用它进行编译。我使用的是MinGW64。
答案 2 :(得分:0)
使用CFLAGS=-32
不会对我有用,configure
脚本仍然会喊着告诉我始终使用win32/Makefile.gcc
。
zlib的最新版本是1.2.11,因此到今天为止,它的差异应该是最小的。在系统上没有任何上下文的情况下,以下这些对于当今面临类似问题的其他用户可能有用。
我在Linux(Ubuntu 18.04)上进行交叉编译,目标是要生产的32位版本的zlib。我所做的如下。
./configure
(这只是为了让我们拥有构建过程所需的文件,尽管我们将使用其他Makefile)win32/Makefile.gcc
修改PREFIX=i686-w64-mingw32-
(对于64位,请将其更改为PREFIX=x86_64-w64-mingw32-
。make -fwin32/Makefile.gcc
make install -fwin32/Makefile.gcc SHARED_MODE=1 INCLUDE_PATH=/tmp/zlib-win32/include LIBRARY_PATH=/tmp/zlib-win32/lib BINARY_PATH=/tmp/zlib-win32/bin
安装到您想要的位置。请注意,您需要指定INCLUDE_PATH
,LIBRARY_PATH
和BINARY_PATH
。 BINARY_PATH
将包含结果.dll文件。