2011-12-05 6 views
1

私は今、かなりの時間、問題があります。Debug vs Release:2つのうちの1つが使用されます。どちらが定義されていません

システム設定4.2.1のXcodeとOSXライオンである、MacPortsのは、Qt4を-MAC 4.7.4 +デバッグとし、vtk5 5.6.1をインストールしました。私はcmakeをビルドシステムとして使用します。プロジェクトには、vtkウィジェットを持つQt GUIアプリケーションが含まれています。 guiをデバッグモードでコンパイルして実行すると、いくつかのCocoaまたはNS関連クラスを持つ

Class QCocoaColorPanelDelegate is implemented in both /opt/local/lib/libQtGui.4.dylib and /opt/local/lib/libQtGui_debug.4.dylib. One of the two will be used. Which one is undefined. 

などの多くの行がスローされます。

otool -Lは、実行ファイルがqtデバッグライブラリとリンクされていることを示します。

これを引き起こす原因は何ですか?どのように解決できるのでしょうか?

答えて

0

QCocoaColorPanelDelegateは両方のライブラリに実装されていますが、実装のうちの1つだけがロードされて使用されます。あなたはたぶん一つのライブラリまたは他のものにリンクするべきです(私はあなたがデバッグライブラリにリンクしたくないと思います)。

+0

をこれがまさに私の問題です。私は自分のプログラムをデバッグしようとしているので、ライブラリのデバッグバリアントが必要ですが、何らかの理由でそれが混ざります。 – Florian

+0

otool -Lの出力を見るとlibQt * _debug.dylibが表示されます。私はリリースライブラリがどこから来たのか分かりません。 – Florian

1

これが私の仕事:

sudo port deactivate qt4-mac-devel +debug 
sudo port activate qt4-mac-devel @4.8.0_0+quartz 
関連する問題