1

我正在尝试使用 Mingw-w64 的 32 位编译器交叉编译 Qt5。主机平台是 Ubuntu 12.10 64 位,目标平台是 32 位 Windows。我已经设法交叉编译 OpenSSL 库并将交叉编译的二进制文件/库/包含安装到~/i686-w64-mingw32.

当我尝试配置 Qt 时,问题浮出水面。我正在使用以下命令:

PKG_CONFIG_PATH=~/i686-w64-mingw32/lib/pkgconfig ./configure -prefix \
  ~/i686-w64-mingw32 -opensource -confirm-license -release -nomake 演示 \
  -nomake 示例 -xplatform win32-g++ -device-option \
  CROSS_COMPILE=i686-w64-mingw32-

二进制文件为主机平台成功编译,qmake并显示所有启用功能的列表:

...
ODBC 支持............插件
SQLite 支持 ......... 插件 (qt)
OpenSSL 支持........没有

这里发生了什么?似乎 Qt 无法找到 OpenSSL 包含的内容。在配置过程中打开-v标志可以确认这一点 - 我收到一些关于无法找到的错误openssl/opensslv.h

所以我的下一步是确认这pkg-config确实有效:

PKG_CONFIG_PATH=~/i686-w64-mingw32/lib/pkgconfig pkg-config --libs openssl

它似乎是:

-L/home/nathan/i686-w64-mingw32/lib -lssl -lcrypto

那么如何让 Qt 相信我有可用的 OpenSSL 库呢?我已经尝试过-force-pkg-config国旗,但没有任何区别。

4

1 回答 1

3

在 Freenode 的频道中询问后#qt,我终于想出了一个可行的解决方案。

我需要将编译器选项直接传递./configure给. 所以命令看起来像这样:pkg-config./configure

./configure <...> -I~/i686-w64-mingw32/include

然后编译器能够找到标头并启用运行时 OpenSSL 支持。

于 2013-02-16T05:19:24.710 回答