2009-08-26 3 views
1

Я использую Qt4Dotnet project для приложения порта, первоначально написанного на C# на Linux и Mac. Port to Linux не приложил много усилий и отлично работает. Но Mac (10.4 Tiger) немного упрям.Qt4Dotnet на Mac OS X

Проблема в том, что при попытке запустить приложение оно выдает исключение. Исключение означает, что com.trolltech.qt.QtJambi_LibraryInitializer не может найти все необходимые библиотеки. Инициализатор библиотеки QtJambi использует переменную окружения java.library.path. Эта переменная включает текущий рабочий каталог. Я поместил все необходимые библиотеки в рабочий каталог. Когда я пытаюсь запустить приложение из MonoDevelop IDE, инициализатор может загружать одну библиотеку, но другие библиотеки «отсутствует»:

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.

Я использую Qt4Dotnet v4.5.0 (в настоящее время последний) с библиотеками QtJambi v4.5.2. Это может быть источником проблемы, но я не могу самостоятельно компилировать Qt4Dotnet v4.5.2 и не обнаруживать библиотеки QtJambi v4.5.0. На странице проекта указано, что какой-то патч следует применять к исходному коду QtJambi, чтобы быть совместимым с картой Mono, но этот патч еще не выпущен. Без этого приложения патча вылетает странным образом (кроме ошибок поиска библиотеки).

Я должен отметить, что оригинальный QtJambi отлично загружает все необходимые библиотеки, поэтому могут быть проблемы компилятора IKVM, используемые для перевода QtJambi в библиотеку .Net.

Любые предложения, как я могу решить эту проблему?

ответ

1

Я думаю, что сегодня столкнулся с той же проблемой. Как только я скопировал libikvm-native.dylib из моего текущего Mono в директорию exe моего проекта, он сработал. Франк напомнил мне сделать это on the list here.