0

嗯.....这是我的第一个 QT Jambi 应用程序,几乎只是尝试打开一个窗口。
这是我使用的终端命令:

java -XstartOnFirstThread -cp qtjambi-4.6.3.jar:qtjambi-examples-4.6.3.jar:qtjambi-macosx-gcc-4.6.3.jar:. 图形用户界面

顺便说一句,我在 MacBook 上运行 Mac OS X Lion 64 位。
以下是上述命令的结果:

com.trolltech.qt.gui.QApplication.(QApplication.java:12) 在 GUI.main(GUI.java:9) 处的线程“main”java.lang.ExceptionInInitializerError 中的异常原因:java.lang.RuntimeException:加载库失败,目前进展:解压 .jar 文件:'qtjambi-macosx-gcc-4.6.3.jar' 检查存档 'qtjambi-macosx-gcc-4.6.3.jar' - 缓存键='gcc-20100817-1815 ' - 将 'libQtCore.4.dylib' 添加到库映射 - 库:name='lib/libQtCore.4.dylib', - 将'libQtGui.4.dylib' 添加到库映射 - 库:name='lib/libQtGui. 4.dylib', - 将 'libQtXml.4.dylib' 添加到库映射 - library: name='lib/libQtXml.4.dylib', - 添加 'libQtSql.4.dylib' 到库映射 - library: name=' lib/libQtSql.4.dylib', - 添加'libQtSvg.4.dylib' 到库映射 - 库:name='lib/libQtSvg.4.dylib', - 将 'libQtHelp.4.dylib' 添加到库映射 - 库:name='lib/libQtHelp.4.dylib' , - 将 'libQtScript.4.dylib' 添加到库映射 - 库:name='lib/libQtScript.4.dylib', - 将 'libQtScriptTools.4.dylib' 添加到库映射 - 库:name='lib/libQtScriptTools. 4.dylib', - 将 'libQtMultimedia.4.dylib' 添加到库映射 - library: name='lib/libQtMultimedia.4.dylib', - 添加 'libQtNetwork.4.dylib' 到库映射 - library: name=' lib/libQtNetwork.4.dylib', - 将 'libQtOpenGL.4.dylib' 添加到库映射 - library: name='lib/libQtOpenGL.4.dylib', - 添加 'libQtWebKit.4.dylib' 到库映射 - 库:名称='lib/libQtWebKit.4.dylib',- 将 'libQtXmlPatterns.4.dylib' 添加到库映射 - 库:name='lib/libQtXmlPatterns.4.dylib',- 将'libphonon.4.dylib' 添加到库映射 - 库: name='lib/libphonon.4.dylib', - 添加 'libQtDBus.4.dylib' 到库映射 - library: name='lib/libQtDBus.4.dylib', - library: name='plugins/phonon_backend/ libphonon_qt7.dylib',从不加载 - 库:name='plugins/imageformats/libqjpeg.dylib',从不加载 - 库:name='plugins/imageformats/libqgif.dylib',从不加载 - 库:name='plugins/imageformats /libqmng.dylib',从不加载 - 库:name='plugins/imageformats/libqtiff.dylib',从不加载 - 库:name='plugins/imageformats/libqsvg.dylib',从不加载 - 库:name='plugins/iconengines/libqsvgicon.dylib',从不加载-库:name='plugins/codecs/libqcncodecs.dylib',从不加载-库:name='plugins/codecs/libqjpcodecs.dylib',从不加载-库:name= 'plugins/codecs/libqkrcodecs.dylib',从不加载 - 库:name='plugins/codecs/libqtwcodecs.dylib',从不加载 - 库:name='plugins/accessible/libqtaccessiblewidgets.dylib',从不加载 - 库:名称='plugins/sqldrivers/libqsqlite.dylib',从不加载 - 将 'libqtjambi.jnilib' 添加到库映射 - 库:name='lib/libqtjambi.jnilib', - 将 'libcom_trolltech_qt_core.jnilib' 添加到库映射 - 库:名称='lib/libcom_trolltech_qt_core.jnilib',-将'libcom_trolltech_qt_gui.jnilib'添加到图书馆地图-图书馆:名称='lib/libcom_trolltech_qt_gui.jnilib',

  • 将“libcom_trolltech_qt_xml.jnilib”添加到图书馆地图
  • 库:名称='lib/libcom_trolltech_qt_xml.jnilib',
  • 将“libcom_trolltech_qt_sql.jnilib”添加到库映射
  • 库:名称='lib/libcom_trolltech_qt_sql.jnilib',
  • 将“libcom_trolltech_qt_svg.jnilib”添加到图书馆地图
  • 库:名称='lib/libcom_trolltech_qt_svg.jnilib',
  • 将“libcom_trolltech_qt_help.jnilib”添加到图书馆地图
  • 库:名称='lib/libcom_trolltech_qt_help.jnilib',
  • 将“libcom_trolltech_qt_script.jnilib”添加到图书馆地图
  • 库:名称='lib/libcom_trolltech_qt_script.jnilib',
  • 将“libcom_trolltech_qt_scripttools.jnilib”添加到图书馆地图
  • 库:名称='lib/libcom_trolltech_qt_scripttools.jnilib',
  • 将“libcom_trolltech_qt_multimedia.jnilib”添加到库映射
  • 库:名称='lib/libcom_trolltech_qt_multimedia.jnilib',
  • 将“libcom_trolltech_qt_network.jnilib”添加到图书馆地图
  • 库:名称='lib/libcom_trolltech_qt_network.jnilib',
  • 将“libcom_trolltech_qt_opengl.jnilib”添加到图书馆地图
  • 库:名称='lib/libcom_trolltech_qt_opengl.jnilib',
  • 将“libcom_trolltech_qt_phonon.jnilib”添加到图书馆地图
  • 库:名称='lib/libcom_trolltech_qt_phonon.jnilib',
  • 将“libcom_trolltech_qt_webkit.jnilib”添加到图书馆地图
  • 库:名称='lib/libcom_trolltech_qt_webkit.jnilib',
  • 将“libcom_trolltech_qt_xmlpatterns.jnilib”添加到库映射
  • 库:名称='lib/libcom_trolltech_qt_xmlpatterns.jnilib',
  • 将“classes.nib”添加到图书馆地图
  • 库:名称='lib/Resources/qt_menu.nib/classes.nib',
  • 将“info.nib”添加到图书馆地图
  • 库:名称='lib/Resources/qt_menu.nib/info.nib',
  • 将“keyedobjects.nib”添加到库映射
  • 库:名称='lib/Resources/qt_menu.nib/keyedobjects.nib',
  • 插件路径='插件'
  • 使用缓存目录:'/var/folders/4p/s98fh7114t5g3y05fh59ctpm0000gn/T/QtJambi_b-dahse_x86_64_4.6.3_gcc-20100817-1815'
  • 缓存目录存在加载库:'libQtCore.4.dylib'...
  • 使用部署规范
  • 行!加载库:'libqtjambi.jnilib'...
  • 使用部署规范
  • 行!加载库:'libQtCore.4.dylib'...
  • 已经加载,正在跳过...正在加载库:'libcom_trolltech_qt_core.jnilib'...
  • 使用部署规范
  • 行!加载库:'libQtGui.4.dylib'...
  • 使用部署规范

    在 com.trolltech.qt.internal.NativeLibraryManager.loadNativeLibrary(NativeLibraryManager.java:431) 在 com.trolltech.qt.internal.NativeLibraryManager.loadQtLibrary(NativeLibraryManager.java:355) 在 com.trolltech.qt.Utilities.loadQtLibrary(Utilities .java:145) at com.trolltech.qt.Utilities.loadQtLibrary(Utilities.java:141) at com.trolltech.qt.gui.QtJambi_LibraryInitializer.(QtJambi_LibraryInitializer.java:7) ... 2 更多原因:java。 lang.UnsatisfiedLinkError:/private/var/folders/4p/s98fh7114t5g3y05fh59ctpm0000gn/T/QtJambi_b-dahse_x86_64_4.6.3_gcc-20100817-1815/lib/libQtGui.4.dylib:库未加载:/opt/local/lib/libpng12.0 .dylib 引用自:/private/var/folders/4p/s98fh7114t5g3y05fh59ctpm0000gn/T/QtJambi_b-dahse_x86_64_4.6.3_gcc-20100817-1815/lib/libQtGui.4.dylib 原因:找不到图像

    在 java.lang.ClassLoader$NativeLibrary.load(Native Method) 在 java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1827) 在 java.lang.ClassLoader.loadLibrary(ClassLoader.java:1703) 在 java.lang.Runtime .load0(Runtime.java:770) 在 java.lang.Runtime.load(Runtime.java:758) 在 com.trolltech.qt.internal.NativeLibraryManager.loadLibrary_helper(NativeLibraryManager.java:458) 在 com.trolltech.qt。 internal.NativeLibraryManager.loadNativeLibrary(NativeLibraryManager.java:426) ... 还有 6 个

下面是 GUI.java 的源代码:

import gui.ViewWindow;
import com.trolltech.qt.gui.QApplication;

public class GUI {

    public static ViewWindow viewWindow;

    public static void main(String[] args) {
        QApplication.initialize(args);
        viewWindow = new ViewWindow();
        QApplication.exec();
    }
}

这是 ViewWindow.java:

package gui;

import com.trolltech.qt.gui.QWidget;

public class ViewWindow extends QWidget {

    public ViewWindow() {
        setWindowTitle("Level editor for Ben's Great Escape");

        resize(1000, 600);
        move(0, 0);
        show();
    }
}

我现在非常困惑和不知所措,所以以前看过此内容的任何人,请看一下并发布您可能有的任何意见。

4

2 回答 2

2

你需要 /opt/local/lib/libpng12.0.dylib

下面引用了指示这一点的错误消息部分:

引起:java.lang.UnsatisfiedLinkError:/private/var/folders/4p/s98fh7114t5g3y05fh59ctpm0000gn/T/QtJambi_b-dahse_x86_64_4.6.3_gcc-20100817-1815/lib/libQtGui.4.dylib:库未加载:/opt/local/ lib/libpng12.0.dylib

.

看起来构建和打包该版本 QtJambi 的人正在使用第 3 方 libpng 库。不幸的是,我不能告诉你从哪里得到它(老实说,它在 /opt/local 中意味着它可能是自制的)。

你试试http://sourceforge.net/projects/qtjambi/files/4.7.0-beta1/ 如果这有助于或阻碍你的进步,请在这里评论。

(不幸的是)已知的与 QtJambi 的各种构建不一致的地方,但我希望这些问题在未来我最终自己发布一些版本时得到解决。

于 2011-10-13T19:11:13.947 回答
0

编辑:我通过将 shell 脚本更改为此来修复它:

#!/bin/sh

me=$(dirname $0)

if [ -e binpatch ];
then
    ./binpatch
    export DYLD_LIBRARY_PATH=$me/lib
    export QT_PLUGIN_PATH=$me/plugins
fi

if ! java -version 2>&1 | grep -q "1\.[5-9]"
then
    echo "Qt Jambi requires Java version 1.5.0 or higher to be preinstalled"
    echo "to work. If Java is installed then make sure that the 'java' executable"
    echo "is available in the PATH environment."
else
    for lib in $(ls qtjambi*.jar); do
    CP=$lib:$CP
    done
    java -d32 -XstartOnFirstThread -cp $CP com.trolltech.launcher.Launcher
fi

我已经为 Mac OS X 下载了 Qt Jambi 4.7.0-beta1 32 位,当我运行 qtjambi.sh shell 脚本时,输出如下: 不再需要!!

于 2011-10-14T17:02:16.973 回答