1

Qt5 を Mingw-w64 の 32 ビット コンパイラでクロスコンパイルしようとしています。ホスト プラットフォームは 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 demos \
  -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

では、OpenSSL ライブラリが利用可能であることを Qt に納得させるにはどうすればよいでしょうか? 私は-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 に答える