私はQt4Dotnet projectを使用しています。これは、もともとはLinuxとMacでC#で書かれたアプリケーションを移植するためです。 Linuxへの移植はあまり努力しておらず、うまく動作しています。しかし、Mac(10.4 Tiger)はもう少し頑固です。Qt4Dotnet on Mac OS X
問題は:アプリケーションを起動しようとすると例外がスローされます。例外として、com.trolltech.qt.QtJambi_LibraryInitializer
は必要なライブラリをすべて見つけることができません。 QtJambiライブラリ初期化子はjava.library.path
VM環境変数を使用します。この変数には現在の作業ディレクトリが含まれます。私は必要なライブラリをすべて作業ディレクトリに置いています。私はMonoDevelopのIDEからアプリケーションを実行しようとすると、初期化子は、1つのライブラリをロードすることができますが、他のライブラリが「行方不明」されています
An exception was thrown by the type initializer for com.trolltech.qt.QtJambi_LibraryInitializer ---> java.lang.RuntimeException: Loading library failed, progress so far: No 'qtjambi-deployment.xml' found in classpath, loading libraries via 'java.library.path' Loading library: 'libQtCore.4.dylib'... - using 'java.library.path' - ok, path was: /Users/chin/test/bin/Debug/libQtCore.4.dylib Loading library: 'libqtjambi.jnilib'... - using 'java.library.path'
libQtCore.4.dylib
とlibqtjambi.jnilib
の両方が同じディレクトリにあります。コマンドプロンプトから実行しようとすると、イニシャライザはlibQtCore.4.dylib
をロードすることさえできません。
QtJambi v4.5.2ライブラリでQt4Dotnet v4.5.0(現在は最新)を使用しています。これは問題の原因かもしれませんが、自分でQt4Dotnet v4.5.2をコンパイルすることも、QtJambi v4.5.0ライブラリを見つけることもできません。 Projectのページには、Monoフレームワークと互換性を持たせるためにQtJambiのソースコードに何らかのパッチを適用する必要があると書かれていますが、このパッチはまだリリースされていません。このパッチがなければ、アプリケーションは異常な方法でクラッシュします(ライブラリのシークフォールト以外)。
オリジナルのQtJambiはすべての必要なライブラリを完全にロードするので、QtJambiを.Netライブラリに変換するために使用されるIKVMコンパイラの問題かもしれないことに注意する必要があります。
この問題を解決するにはどうすればよいですか?