1

mingwを使用してwin32でOpenSSL1.0.1を正常にコンパイルしました。今私は次の設定で静的Qt4.8.1をコンパイルしようとしています:

configure -release -static -qt-zlib -nomake examples -nomake demos -no-qt3support -no-scripttools -no-opengl -no-webkit -no-phonon -no-style-motif -no-style-cde -no-style-cleanlooks -no-style-plastique -no-sql-sqlite -openssl-linked OPENSSL_LIBS="-lssl -lcrypto -lgdi32 -luser32" -I H:\Workplace\OpenSSL\include -L H:\Workplace\OpenSSL

私はこれらのエラーを受け取りました:

H:\Workplace\OpenSSL/libssl.a(ssl_lib.o):ssl_lib.c:(.text+0x17be): undefined ref erence to '_time32'(数回)

H:\Workplace\OpenSSL/libcrypto.a(o_time.o):o_time.c:(.text+0x362): undefined ref erence to '_gmtime32'

H:\Workplace\OpenSSL/libcrypto.a(mem_dbg.o):mem_dbg.c:(.text+0x4c7): undefined r eference to '_localtime32'

解決済み(以下を参照)

4

2 に答える 2

2

最後に、すべての問題を解決しました。これは、TDM-GCCを使用して静的OpenSSLで静的Qtをコンパイルするための完全なソリューションです。

  • 最新のOpenSSLのソースをダウンロードし、解凍します。

  • TDM-GCCを使用してコンパイルしたので、ダウンロードしてインストールします。

  • MSYSをインストールします。

  • ../MsysInstallDir/etc/fstab次の内容でファイルを作成します。

MyPathToMinGW /mingw(tdm-gccを使用する場合は必須)

MyPathToPerl /perl(perlもインストールする必要があります)

  • OpenSSLをコンパイルするには、OpenSSLソースフォルダー(MSYS内)で次のコマンドを実行します。

./config

make

  • qt-everywhere(v.4.8.1を使用)ソースをダウンロードして解凍します。

更新:最近、別のWindows7コンピューターで4.8.2をビルドし、コンパイルエラーが発生しました(アプリのビルド中に):«-lQtCore4が見つかりません»、«-lQtGui4が見つかりません»。これが私を助けた解決策です-ファイル「qt-sources-dir/mkspecs / win32-g ++/qmake.conf」を編集してください。セットするQMAKE_LFLAGS = -static -static-libgcc

  • configを使用してqtsourcesdirにconf.batファイルを作成します。

configure -release -static -qt-zlib -nomake examples -nomake demos -no-qt3support -no-scripttools -no-opengl -no-webkit -no-phonon -no-style-motif -no-style-cde -no-sql-sqlite -openssl OPENSSL_LIBS="-lssl -lcrypto -lgdi32 -luser32" -I MyOpenSSLdir\include -L MyOpenSSLdir

  • 実行しcmdます。mingwvars.batmingwフォルダーで実行します。qtsourcesフォルダーで実行conf.batします(または、sourcesフォルダーをPATHに追加し、別のディレクトリーから実行して、インストールをsourcesから分離します)。Qtのコンパイルには数時間かかります。

  • プロジェクトの.proファイルに追加します。INCLUDEPATH += OpenSSLdir/include/

私はそれが誰かを助けるかもしれないと思います。

于 2012-04-17T13:49:15.197 に答える
1

-openssl-linkedが必要ですか?私たちは常にopensslを動的に使用してQtを構築します。(-openssl)

于 2012-04-16T07:04:58.397 に答える