我正在使用Qt4Dotnet 项目来移植最初用 C# 在 Linux 和 Mac 上编写的应用程序。移植到 Linux 并没有花费太多精力并且工作正常。但是 Mac (10.4 Tiger) 有点固执。
问题是:当我尝试启动我的应用程序时,它会引发异常。com.trolltech.qt.QtJambi_LibraryInitializer
无法找到所有必要的库的异常状态。QtJambi 库初始化程序使用java.library.path
VM 环境变量。此变量包括当前工作目录。我将所有必要的库放在一个工作目录中。当我尝试从 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 库。Project 的页面指出,为了与 Mono 框架兼容,应该对 QtJambi 的源代码应用某种补丁,但是这个补丁还没有发布。如果没有这个补丁,应用程序会以一种奇怪的方式崩溃(除了库查找错误)。
我必须注意,原始 QtJambi 完美地加载了所有必要的库,因此可能是用于将 QtJambi 转换为 .Net 库的 IKVM 编译器的问题。
有什么建议可以解决这个问题吗?