Проблемы с установкой 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-подобную среду.