开发者

Trouble installing QT Jambi on a Windows 64 bit system

I've been trying to use QT Jambi, but I couldn't manage to install it yet. First of all, this is my system:

Windows 7 Home Premium 64 Bit

Java 6 32 bit (I often use JDownloader which is not compatible with the 64 bit version of Java)

MinGW C++ compiler that comes with Code::Blocks (which sets all required environmental variables during setup)

I also have CygWin installed, but I don't understand why it gets mentioned during the error that I get...

My first idea was to try the 32 bit version since I have 32-bit Java, so I linked the libraries in Eclipse, tried the classical beginner program found in a tutorial and I got this message:

java.lang.ExceptionInInitializerError
    at com.trolltech.qt.QtJambiObject.<clinit>(Unknown Source)
Caused by: java.lang.RuntimeException: 开发者_StackOverflow中文版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"

Then since it says it expects a 64 bit system I followed the Installation Guide and tried this steps:

1) Downloaded QTJambi source package

2) Downloaded original QT source package

3) Added "C:\QTJambi\QT\qt-qt\bin" (QT source package folder) to the environment PATH variable

4) Opened Visual Studio 2005 Command Prompt

5) cd C:\QTJambi\QT\qt-qt

6) Tried: configure -platform win64-g++ -D QT_JAMBI_BUILD -no-qt3support -plugin-manifests

But it didn't work, error: invalid option win64-g++ for -platform

7) Tried configure -platform win32-g++ -D QT_JAMBI_BUILD -no-qt3support -plugin-manifests

8) Digit o for open source

9) Digit y for accepting license

But it doesn't work either, getting this error:

 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

Anyone able to help? Thanks in advance to anyone!


This response attempts to explain and address the original problem (i.e. how to make use of the 32bit QtJambi binary distribution on a 64bit Windows system).

skipping because of wrong system: trying to load: 'win32', expected: 'win64'

This is a message from the QtJambi initialization code that detects a mismatch between the 32/64 bit-ness of the JVM and the 32/64 bit-ness of the QtJambi implementation trying to be loaded into the JVM instance at runtime.

In your case this is due to trying to use a 64bit JVM with a 32bit version of QtJambi. This is not a possible feat. To correct the problem find and install directly the Windows 32bit JVM on your system so that you have the file "C:\Program Files (x86)\Java\jre6\bin\java.exe" (you may already have it installed, please check)

When they are both installed on a 64bit system take a look at the difference between:

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)

The top one is the 32bit JVM; the bottom one is the 64bit JVM.

Now try loading the QtJambi binary version you have via the 32bit JVM you have to do this explicitly as the default "java.exe" should be the 64bit one on a Windows 64bit platform:

"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

You need to fixup the command line above the ClassPath (-cp) to the locations of your JARs you are attempting to run and the main().

If you have problems getting the application to start due to UnsatisfiedLinkError and you are using a msvc2008 build then try installing the "Microsoft Visual C++ 2008 SP1 Redistributable Package (x86)" http://www.microsoft.com/download/en/details.aspx?id=5582 (NOTE: There is also a 64bit version of this as well, this link is for the 32bit version which is relevant to using 32bit QtJambi on a 32bit JVM, if you also want the 64bit version search for the same page with "(x64)" in the title instead of "(x86)" on the microsoft website).

Then retry your test.


Qt Jambi nowadays supports 64 bit compilations too, but getting proper Qt is quite a bit harder.

For MinGW there is some resources available in Internet. Maybe they can help you. Building 64-bit Qt 4.7 using MinGW-w64

Only supported (by Nokia) solution at the moment is 64 bit MSVC compilations, but AFAIK there is no such binaries distributed from Nokia because runtimes are not allowed to be freely distributed. When compiling with MSVC, correct profile for MSVC 2010 would be win32-msvc2010. List of those can be found from in mkspecs directory.

Note that you don’t usually have to specify the profile in first place; only if there is many available profiles you could use and you want to use certain one (MinGW or MSVC, for example).

64 bit compilation with MSVC works using 64 bit environment, according this page.

Using Cygwin with Qt or Qt Jambi is not really suggested; use MSYS if you want unix-like environment.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜