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

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

Windows 7 Домашняя расширенная 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) Пробовал: configure -platform win64-g++ -D QT_JAMBI_BUILD -no-qt3support -plugin-manifests

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

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

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

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


person Alex    schedule 25.09.2011    source источник
comment
попытка загрузки: 'win32', ожидается: 'win64' Загрузка библиотеки Это указывает на то, что используемая в то время JVM была 64-битной, а не 32-битной.   -  person Mat    schedule 25.09.2011
comment
Я не знаю, что сказать, может быть, тогда у меня есть обе версии. Что я знаю, так это то, что я скомпилировал и запустил множество различных Java-программ, и у меня никогда не было проблем. В любом случае проблема в том, что я не могу собрать 64-битную версию QTJambi, поэтому, если JVM 64-битная, это не может быть проблемой!   -  person Alex    schedule 25.09.2011
comment
Вы можете проверить свою версию Java с помощью java -version. Он также должен вернуть битность. Вам нужно сделать это в той же среде, что и при компиляции, или он может использовать другую Java, если у вас установлено несколько версий.   -  person Smar    schedule 25.09.2011
comment
Эта ошибка связана с Perl и не является фатальной; можно отключить, фактически установив локаль (LC_ALL=it_IT.utf8 или любую другую локаль. Помогает команда «locale»). Чисто MinGW/MSYS.   -  person Smar    schedule 25.09.2011
comment
Как я могу установить это? Пол часа искал в инете, но так и не нашел как это сделать :/   -  person Alex    schedule 25.09.2011
comment
Вам это не понравится, если у вас нет MSYS (и, следовательно, Bash). Что касается Windows, я немного не разбираюсь, поэтому я всегда сам использую MSYS, чтобы что-то делать.   -  person Smar    schedule 25.09.2011


Ответы (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).

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

person Darryl Miles    schedule 25.09.2011

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

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

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

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

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

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

person Smar    schedule 25.09.2011