我一直在尝试使用QT Jambi,但我还是无法安装它。首先,这是我的系统:
Windows 7家庭高级版64位
Java 6 32位(我经常使用与64位版本的Java不兼容的JDownloader)
Code :: Blocks附带的MinGW C ++编译器(在安装过程中设置所有必需的环境变量)
我也安装了CygWin,但我不明白为什么在我得到的错误中会提到它...
我的第一个想法是尝试32位版本,因为我有32位Java,所以我链接了Eclipse中的库,尝试了教程中的经典初学者程序,我得到了这样的信息:
java.lang.ExceptionInInitializerError
at com.trolltech.qt.QtJambiObject.<clinit>(Unknown Source)
Caused by: java.lang.RuntimeException: Loading library failed, progress so far:
Unpacking .jar file: 'qtjambi-win32-msvc2008-4.7.1.jar'
Checking Archive 'qtjambi-win32-msvc2008-4.7.1.jar'
- skipping because of wrong system: trying to load: 'win32', expected: 'win64'
Loading library: 'QtCore4.dll'...
- using 'java.library.path'
at com.trolltech.qt.internal.NativeLibraryManager.loadNativeLibrary(Unknown Source)
at com.trolltech.qt.internal.NativeLibraryManager.loadQtLibrary(Unknown Source)
at com.trolltech.qt.Utilities.loadQtLibrary(Unknown Source)
at com.trolltech.qt.Utilities.loadQtLibrary(Unknown Source)
at com.trolltech.qt.QtJambi_LibraryInitializer.<clinit>(Unknown Source)
... 1 more
Caused by: java.lang.RuntimeException: Library 'QtCore4.dll' was not found in 'java.library.path'=C:\Program Files\Java\jre6\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C: \Windows;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Broadcom\Broadcom 802.11\Driver;c:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\;C:\Program Files (x86)\CodeBlocks\MinGW\bin\;C:\Program Files (x86)\QuickTime\QTSystem\;C:\cygwin\bin;C:\Program Files\Microsoft Windows Performance Toolkit\;.
at com.trolltech.qt.internal.NativeLibraryManager.loadLibrary_helper(Unknown Source)
... 6 more
Exception in thread "main"
然后因为它说它需要一个64位系统我跟着Installation Guide并尝试了这个步骤:
1)下载了QTJambi源包
2)下载原始QT源包
3)将“C:\ QTJambi \ QT \ qt-qt \ bin”(QT源包文件夹)添加到环境PATH变量
4)打开Visual Studio 2005命令提示符
5)cd C:\ QTJambi \ QT \ qt-qt
6)尝试:configure -platform win64 -g ++ -D QT_JAMBI_BUILD -no-qt3support -plugin-manifests
但它不起作用,错误: 无效选项win64-g ++ for -platform
7)尝试configure -platform win32 -g ++ -D QT_JAMBI_BUILD -no-qt3support -plugin-manifests
8)数字o用于开源
9)接受许可的数字
但它也不起作用,收到此错误:
Running syncqt...
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LC_ALL = (unset)
LANG = "IT"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
Can't execute /cygdrive/c/QTJambi/QT/qt-qt/bin//syncqt
syncqt failed, return code 2
任何人都可以提供帮助吗? 提前感谢任何人!
答案 0 :(得分:4)
此响应尝试解释和解决原始问题(即如何在64位Windows系统上使用32位QtJambi二进制分发)。
由于系统错误而跳过:尝试加载:'win32',预期:'win64'
这是来自QtJambi初始化代码的消息,它检测JVM的32/64位与QtJambi实现的32/64位之间的不匹配,试图在运行时加载到JVM实例中。
在您的情况下,这是由于尝试使用64位JVM和32位版本的QtJambi。这不是一个可能的壮举。要解决此问题,请在系统上直接找到并安装Windows 32位JVM,以便您拥有文件“C:\ Program Files(x86)\ Java \ jre6 \ bin \ java.exe”(您可能已经安装了它,请检查)
当它们都安装在64位系统上时,请看一下它们之间的区别:
C:\>"C:\Program Files (x86)\Java\jre6\bin\java.exe" -version
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) Client VM (build 20.1-b02, mixed mode, sharing)
C:\>"C:\Program Files\Java\jre6\bin\java.exe" -version
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode)
最上面的是32位JVM;最下面的是64位JVM。
现在尝试通过32位JVM加载你所拥有的QtJambi二进制版本,因为默认的“java.exe”应该是Windows 64bit平台上的64位版本:
"C:\Program Files (x86)\Java\jre6\bin\java.exe" -cp qtjambi-X.Y.Z.jar;qtjambi-win32-msvc2008-X.Y.Z.jar;myjar.jar mypackage.MyMain
您需要将ClassPath(-cp)上方的命令行修复到您尝试运行的JAR和main()的位置。
如果由于UnsatisfiedLinkError而导致应用程序启动时遇到问题,并且您使用的是msvc2008版本,请尝试安装“Microsoft Visual C ++ 2008 SP1可再发行组件包(x86)”http://www.microsoft.com/download/en/details.aspx?id=5582(注意:还有一个这个64位版本,这个链接用于32位版本,这与在32位JVM上使用32位QtJambi有关,如果你还希望64bit版本在标题中用“(x64)”搜索同一页面而不是“ (x86)“在微软网站上”。
然后重试您的测试。
答案 1 :(得分:2)
Qt Jambi现在也支持64位编译,但是获得正确的Qt要困难得多。
对于MinGW,Internet中有一些资源可用。也许他们可以帮助你。 Building 64-bit Qt 4.7 using MinGW-w64
目前仅支持(由诺基亚)解决方案是64位MSVC编译,但AFAIK没有从诺基亚分发此类二进制文件,因为运行时不允许自由分发。使用MSVC进行编译时,MSVC 2010的正确配置文件将为win32-msvc2010。可以在mkspecs目录中找到这些列表。
请注意,您通常不必首先指定配置文件;只有当您可以使用许多可用的配置文件并且您想要使用某个配置文件时(例如,MinGW或MSVC)。
根据{{3}},使用64位环境对MSVC进行64位编译。没有真正建议将Cygwin与Qt或Qt Jambi一起使用;如果你想要类似unix的环境,请使用MSYS。