2009-08-26 8 views
1

J'utilise Qt4Dotnet project afin de porter l'application écrite à l'origine en C# sur Linux et Mac. Port à Linux n'a pas pris beaucoup d'efforts et fonctionne bien. Mais Mac (10.4 Tiger) est un peu plus têtu.Qt4Dotnet sur Mac OS X

Le problème est: lorsque j'essaie de démarrer mon application, il déclenche une exception. Exception indique que com.trolltech.qt.QtJambi_LibraryInitializer est incapable de trouver toutes les bibliothèques nécessaires. L'initialiseur de bibliothèque QtJambi utilise la variable d'environnement VM java.library.path. Cette variable inclut le répertoire de travail actuel. Je mets toutes les bibliothèques nécessaires dans un répertoire de travail. Lorsque je tente de lancer l'application à partir MonoDevelop IDE, initialiseur est capable de charger une bibliothèque, mais les autres bibliothèques sont « manquantes »:

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'

Les deux libQtCore.4.dylib et libqtjambi.jnilib sont dans le même répertoire. Lorsque j'essaie de l'exécuter à partir de l'invite de commande, l'initialiseur est incapable de charger même libQtCore.4.dylib. J'utilise Qt4Dotnet v4.5.0 (actuellement le dernier) avec les bibliothèques QtJambi v4.5.2. Cela peut être la source du problème, mais je ne suis pas non plus capable de compiler Qt4Dotnet v4.5.2 par moi-même ni de trouver les bibliothèques QtJambi v4.5.0. La page du projet indique qu'une sorte de patch devrait être appliqué au code source de QtJambi afin d'être compatible avec le framework Mono, mais ce patch n'a pas encore été publié. Sans cette application de patch se bloque d'une manière étrange (autre que la faute de recherche de bibliothèque).

Je dois noter que QtJambi original charge parfaitement toutes les librairies nécessaires, donc il pourrait y avoir des problèmes de compilateur IKVM utilisé pour traduire QtJambi dans la bibliothèque .Net.

Des suggestions comment puis-je surmonter ce problème?

Répondre

1

Je pense que j'ai rencontré le même problème plus tôt aujourd'hui. Dès que j'ai copié libikvm-native.dylib de mon répertoire actuel vers le répertoire exe de mon projet, cela a fonctionné. Frank m'a rappelé de le faire on the list here.