0

私はwinXPで作業しており、gcc4.7を使用しています。

私は OpenCV 2.4.2 静的ライブラリを構築しました。それらにはliblibjpeg.a liblibpng.a liblibtiff.a libzlib.a他の.aファイルがあります。

libwxjpeg.a libwxpng.a libwxtiff.a libwxzlib.a次に、shared と getとその他の.a/.dllファイルに wxwidgets294 をビルドしました。

そのため、wxwidgets で OpenCV を使用すると、それらが競合します。リンク-lopencv_highgui -lopencv_imgproc -lopencv_core -lwxtiff -lwxjpeg -lwxpng -lwxzlib -lwxmsw29udすると、wxwidget は機能しますが、OpenCV は機能しません。たとえば、imread失敗します (空のマットになります)。-lopencv_highgui -lopencv_imgproc -lopencv_core -llibjasper -llibtiff -llibjpeg -llibpng -lwxmsw29ud -lzlibwxwidgetsをリンクすると、動作しなくなり、実行するとすぐに終了します。

これを修正する方法についてのアイデアはありますか?

4

1 に答える 1

0

なぜ機能しないのか説明していませんが(「終了」による「クラッシュ」を意味しますか?もしそうなら、デバッグを試みましたか?)、一般的には、複数回使用するすべてのライブラリを次のようにリンクするのが最善です。共有ライブラリであり、静的ライブラリの複数の(そしておそらく異なる)コピーを持っていません。

少なくともwxWidgetsは、インストールされている場合、システムにすでに存在する共有ライブラリを使用するように構成できます。あなたはおそらくそれらを持っていないでしょう、それがwx自体に含まれているバージョンのコンパイルにフォールバックする理由です。

于 2012-09-10T13:18:00.107 に答える