0

vlcソースコードを変更し、いくつかのUI画面を追加しました。QtNetworkパッケージを使用する必要がありましたが、デフォルトではvlcにはQtCoreパッケージとQtGuiパッケージしかありません。

Linux用にコンパイルしているときに、プライマリvlc configure.acを変更してQtNetworkを含めたところ、正常に機能しました。しかし、標準プロセスに従ってクロスコンパイルしようとすると、構成手順が失敗します。

../extras/package/win32/configure.sh --host = i686-w64-mingw32

QtNetworkの検索に失敗したことを示します

更新: QtNetworkが有効になった後、それでもQtNetwork関連のクラスとその関数への未定義の参照を取得していました。

4

1 に答える 1

0

私はついにこれをVLCフォーラムのOlivierの助けを借りて機能させました。Linux上のWindows用のvlcのクロスコンパイルに既に精通していることを前提としています。

まず、QtNetworkを使用してLinux用にコンパイルした場合、vlcの親の下にあるconfigure.acには、QtGuiまたはQtCoreがあるすべての場所で言及されているQtNetworkも直接含まれていると思います。

次に、QtNetworkライブラリはすでに構築されており、contrib / src / qt4/rules.makの「INSTALLINGPKGCONFIGFILES」セクションの「Core」と「Gui」の後に「Network」を追加する必要があります。もちろん、QtNetwork.pc.inファイルも必要です(QtGui.pc.inをコピーして適合させます)。追加する追加のキーライブラリは、-llws2_32と-lQtNetwork自体です。

また、OpenSSLサポートを明示的に無効にする必要があります。そうしないと、libQtNetwork.aとのリンクが未解決のシンボルで失敗します。これを行う1つの方法は、QT_NO_OPENSSLをsrc / network/network.proに追加することです。このファイルはmake.qt4中に生成されるため、rules.makファイルの先頭付近で使用される他のパッチと同様に、network.proファイルにパッチを作成して適用する必要があります。

詳細はのvlc開発スレッドにあります

于 2013-01-23T00:49:10.033 に答える