1

我正在使用Qt4Dotnet 项目来移植最初用 C# 在 Linux 和 Mac 上编写的应用程序。移植到 Linux 并没有花费太多精力并且工作正常。但是 Mac (10.4 Tiger) 有点固执。

问题是:当我尝试启动我的应用程序时,它会引发异常。com.trolltech.qt.QtJambi_LibraryInitializer无法找到所有必要的库的异常状态。QtJambi 库初始化程序使用java.library.pathVM 环境变量。此变量包括当前工作目录。我将所有必要的库放在一个工作目录中。当我尝试从 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.dyliblibqtjambi.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 编译器的问题。

有什么建议可以解决这个问题吗?

4

1 回答 1

1

我想我今天早些时候遇到了同样的问题。一旦我将 libikvm-native.dylib 从我当前的 Mono 复制到我的项目的 exe 目录,它就起作用了。弗兰克在这里提醒我这样做。

于 2009-12-17T01:37:05.870 回答