2009-07-14 16 views
1

最近Qt Creatorを使い始めましたが、うまくいくようです。 OS Xでビルドするサンプルアプリケーションは、ImageMagickライブラリを使用しています。WindowsでMinGwを使用してImageMagickライブラリをリンクする際の問題

問題はありません。すべて正常に動作します。私はソースからImageMagickライブラリを構築しました。

ここではWindows側に移り、リンクのトラブルが始まります。 Windows版Qt CreatorはMinGWを使用し、Microsoftのコンパイラは使用しませんが、ImageMagickライブラリはVCでコンパイルされています。要するに

- 私はこれは私がmingwのを使用してImageMagickのライブラリを再コンパイルしなければならないことを意味GCC

を使用して、私のQt Creatorをプロジェクトに対してWindows上でビルド済みのライブラリをリンクすることはできませんが、私は前にWindows上でGCCを使用したことがありません。 ./configureを実行するにはどうすればよいですか?

ImageMagickには "windows sources"が付属していますが、すべてVisualStudio用です。

誰でも手助けできますか?誰も既にImageMagickライブラリをWindows上のQt Creatorプログラムにリンクしていますか?

ありがとう、

Dj。

+0

私はMSYS(Cygwinのに似たウィンドウ上のUNIXシェル)を指摘してしまったと私は今のQt Creatorが使用されるのと同じコンパイラを使用してライブラリをコンパイルするために管理。 リンカーがライブラリを検出するようになりましたが、依然として良好ではありません。 は、私は、次の ... MINGW32-メイクを得る:残しディレクトリ 'C: C:/技術評価/ QT/MagickTest ':関数' ZN6Magick5Image12channelDepthEN10MagickCore11ChannelTypeEで のlib/libMagick ++(Image.o)。' /ライブラリ/ ImageMagick-6.5.4-2/Magick ++/lib/Image.cpp:540:「_imp__GetExceptionInfo」への未定義の参照 ... これは他の機能でしばらく続きます... –

答えて

0

libMagick ++以上のものとリンクする必要があります。 libMagickCore.a、そしておそらくlibMagickWand.aだけでなく、-lz -ltiff -ljpeg -lpng12 -lgdi32 -lpthread -lfreetypeなどのいくつかの依存関係(これらはIMのコンパイル方法に依存します)が含まれています。

マシュー

+1

Matthew、 私はできます例えばOS X上で同じソースをコンパイルし、libMagickでリンクするだけでリンクしてください。 libMagick自体はビルド中にこれらの他の依存関係をリンクします。したがって、それらを再びリンクするのは意味がありません(OS Xの場合は明らかです) 問題を解決する価値はないので、私はこれをあきらめ、開発者はWindowsでのコンパイルに気をつけていないようです。図書館が有望だったので、あまりにも悪い。 Qt自体は、私が取り組んでいるものを補完するのに十分なイメージサポートを持っているようです。 ありがとうございます。 –

+0

リンクは、OS XとWindowsで動作が異なります。私は実際にはOS Xについてあまり知りませんが、それはLinuxのように仮定すると、実行時にシンボル定義を解決できます。 Windowsでは、すべてコンパイル時に定義する必要があります。したがって、すべてのライブラリをリンクする必要があります。 –

+0

>「実行時にシンボル定義を解決できます」 私たちは動的ライブラリではなく静的ライブラリについて説明しています。すべてを静的にリンクすると、実行時に何も起こりません。 さらに、問題が実行時にのみ発生した場合、アプリケーションは正常にコンパイルされ、実行時にクラッシュします(たとえば、コンパイルするウィンドウでクラッシュしますが、DLLが見つからない場合、アプリケーションは起動しません)。 >「OS XとWindowsで異なる方法でリンクする」 どう違うのですか?私は同じコンパイラを使用する場合、どのような違いがあるか分かりません。もっと情報を教えてもらえますか? –

関連する問題