与mingw交叉编译时找不到zlib头文件?

Posted

技术标签:

【中文标题】与mingw交叉编译时找不到zlib头文件?【英文标题】:zlib header not found when cross compiling with mingw? 【发布时间】:2014-01-24 01:25:06 【问题描述】:

我正在运行./configure --host=x86_64-w64-mingw32,但由于某种原因它告诉我"zlib header not found."。我已经安装了软件包(apt-get install zlib1g-gev),但它仍然告诉我这一点。

当我运行 ./configure 时,它编译得很好。

我正在尝试使用 MinGW-64 在 Debian 7 上为 Windows 交叉编译 64 位可执行文件

我必须做些什么来解决这个问题或避免类似的事情发生?

【问题讨论】:

【参考方案1】:

Windows 软件需要 windows 库,Mingw 正在寻找交叉编译的 Zlib,你必须自己构建:

    下载zlib源码 在 win32/Makefile.gcc 中编辑 PREFIX 值。对于 32 位版本,它将如下所示:

PREFIX = i686-w64-mingw32-

    不要运行配置!请改用这两个命令(在您的系统中找到“i686-w64-mingw32”文件夹,如果它不在 /usr 中,请更正这些路径):

BINARY_PATH=/usr/i686-w64-mingw32/bin INCLUDE_PATH=/usr/i686-w64-mingw32/include LIBRARY_PATH=/usr/i686-w64-mingw32/lib make -f win32/Makefile.gcc

BINARY_PATH=/usr/i686-w64-mingw32/bin INCLUDE_PATH=/usr/i686-w64-mingw32/include LIBRARY_PATH=/usr/i686-w64-mingw32/lib make -f win32/Makefile.gcc install

此时,您将拥有由 Mingw 工具访问的交叉编译的 zlib。对于 x64,PREFIX 变量(和路径)将包含:x86_64-w64-mingw32 而不是 i686-w64-mingw32

以下链接真的很有帮助:https://wiki.openttd.org/Cross-compiling_for_Windows#Compiling_zlib

【讨论】:

以上是关于与mingw交叉编译时找不到zlib头文件?的主要内容,如果未能解决你的问题,请参考以下文章

在Linux下使用MinGW静态交叉编译带有zlib的libcurl(包括交叉编译openssl,即--cross-compile-prefix=i686-w64-mingw32- mingw)(代码

如何交叉编译 动态库

libevent 交叉编译生成的库怎么不能用

aarch64-linux-gnu-g++ 交叉编译为 arm64 错误

arm交叉编译lighttpd问题。

ubuntu32bit的系统如何配置mingw-w64的交叉编译toolchain?