Проблемы с установкой QT Jambi в 64-битной системе Windows

Я пытался использовать QT Jambi, но пока не смог его установить. Прежде всего, это моя система:

Windows 7 Home Premium 64-битная

Java 6 32-битная (я часто использую JDownloader, который не совместим с 64-битной версией Java)

Компилятор MinGW C++, который поставляется с Code::Blocks (который устанавливает все необходимые переменные среды во время установки)

У меня также установлен 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-битную систему, я следовал Руководству по установке и попробовал следующие шаги:

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) Попробовал: настроить -platform win64-g++ -D QT_JAMBI_BUILD -no-qt3support -plugin-manifest

Но это не сработало, ошибка: неверная опция win64-g ++ для -platform

7) Пробовал настроить -platform win32-g ++ -D QT_JAMBI_BUILD -no-qt3support -plugin-manifest

8) цифра o для открытого исходного кода

9) Цифра y для принятия лицензии

Но это тоже не работает, получая эту ошибку:

 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

Кто-нибудь может помочь? Заранее спасибо всем!

2 ответа

Этот ответ пытается объяснить и решить исходную проблему (то есть, как использовать 32-битный двоичный дистрибутив QtJambi в 64-битной системе Windows).

пропуск из-за неправильной системы: попытка загрузки: "win32", ожидаемая: "win64"

Это сообщение из кода инициализации QtJambi, которое обнаруживает несоответствие между разрядностью 32/64 JVM и разрядностью 32/64 реализации QtJambi, пытающейся загрузиться в экземпляр JVM во время выполнения.

В вашем случае это связано с попыткой использовать 64-битную JVM с 32-битной версией QtJambi. Это не возможный подвиг. Чтобы устранить проблему, найдите и установите непосредственно 32-битную JVM Windows в своей системе, чтобы у вас был файл "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.

Теперь попробуйте загрузить двоичную версию QtJambi, которую вы используете, через 32-битную JVM, вы должны сделать это явно, так как по умолчанию "java.exe" должен быть 64-битным на 64-битной платформе Windows:

"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-битного QtJambi на 32-битной JVM, если вы также хотите, чтобы 64-битная версия искала ту же самую страница с "(x64)" в заголовке вместо "(x86)" на веб-сайте Microsoft).

Затем повторите тест.

Qt Jambi в настоящее время также поддерживает 64-битные компиляции, но получить правильный Qt немного сложнее.

Для MinGW есть несколько ресурсов, доступных в Интернете. Может быть, они могут помочь вам. Сборка 64-битного Qt 4.7 с использованием MinGW-w64

Единственное поддерживаемое (от Nokia) решение на данный момент - это 64-битные компиляции MSVC, но AFAIK нет таких двоичных файлов, распространяемых от Nokia, потому что среды выполнения не могут свободно распространяться. При компиляции с MSVC правильным профилем для MSVC 2010 будет win32-msvc2010. Список их можно найти в каталоге mkspecs.

Обратите внимание, что обычно вам не нужно указывать профиль в первую очередь; только если имеется много доступных профилей, которые можно использовать, и вы хотите использовать определенный (например, MinGW или MSVC).

Согласно этой странице, 64-битная компиляция с MSVC работает в 64-битной среде.

Использование Cygwin с Qt или Qt Jambi не очень рекомендуется; используйте MSYS, если вы хотите Unix-подобную среду.

Другие вопросы по тегам