Кросс-компиляция Qt (Linux -> Windows) |
Здравствуйте, гость ( Вход | Регистрация )
Кросс-компиляция Qt (Linux -> Windows) |
delirium |
21.9.2011, 12:25
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 2 Регистрация: 21.9.2011 Пользователь №: 2896 Спасибо сказали: 0 раз(а) Репутация: 0 |
Всем привет,
пытаюсь собрать Qt 4.7.4 из-под Linux: x86_64 $ x86_64-w64-mingw32-g++ --version x86_64-w64-mingw32-g++ (GCC) 4.5.4 20110822 (prerelease) Под Windows (x86_64). Искал в сети статьи/руководства на эту тему, нашел например http://lists.trolltech.com/qt-interest/200...ead00351-0.html http://silmor.de/29 (здесь есть несколько "размытая" часть http://silmor.de/38 ) Везде предлагается собирать Qt на винде, а потом уже подкладывать собранные либы на линуксовую машинку, но этот вариант не подходит: нужно собраться именно кроссом, именно из-под линукса. Читал также официальную доку по cross-compiling Qt for embedded systems, смотрел спеки, но там только юниксовые платформы. Поправил qmake.conf для win32-g++, прописав туда свой кросс и дефайны (-DWIN32 -DUNICODE), но при configure -platform win32-g++ ... получаю ошибку: x86_64-w64-mingw32-g++ -c -o qfsfileengine_unix.o -DWIN32 -DUNICODE -DQMAKE_OPENSOURCE_EDITION -g -I. -Igenerators -Igenerators/unix -Igenerators/win32 -Igenerators/mac -Igenerators/symbian -I/home/del/Downloads/qt/include -I/home/del/Downloads/qt/include/QtCore -I/home/del/Downloads/qt/src/corelib/global -I/home/del/Downloads/qt/src/corelib/xml -I/home/del/Downloads/qt/tools/shared -DQT_NO_PCRE -DQT_BUILD_QMAKE -DQT_BOOTSTRAPPED -DQLIBRARYINFO_EPOCROOT -DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_NO_COMPONENT -DQT_NO_STL -DQT_NO_COMPRESS -I/home/del/Downloads/qt/mkspecs/win32-g++ -DHAVE_QCONFIG_CPP -DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT /home/del/Downloads/qt/src/corelib/io/qfsfileengine_unix.cpp In file included from /home/del/Downloads/qt/include/QtCore/private/qcore_unix_p.h:1:0, from /home/del/Downloads/qt/src/corelib/io/qfsfileengine_unix.cpp:45: /home/del/Downloads/qt/include/QtCore/private/../../../src/corelib/kernel/qcore_unix_p.h:59:3: error: #error "qcore_unix_p.h included on a non-Unix system" In file included from /home/del/Downloads/qt/include/QtCore/private/qcore_unix_p.h:1:0, from /home/del/Downloads/qt/src/corelib/io/qfsfileengine_unix.cpp:45: /home/del/Downloads/qt/include/QtCore/private/../../../src/corelib/kernel/qcore_unix_p.h:66:22: fatal error: sys/wait.h: No such file or directory compilation terminated. make: *** [qfsfileengine_unix.o] Error 1 Такое ощущение, что скрипты конфигурации где-то внутри всё-таки детектят, что сборочный хост - это юникс и соответственно включаются не те хедера и собираются не те файлы... У кого-нибудь получилось, побилдить виндовый Qt из-под Linux? Если да, то прошу совета. |
|
|
delirium |
21.9.2011, 13:24
Сообщение
#2
|
Новичок Группа: Новичок Сообщений: 2 Регистрация: 21.9.2011 Пользователь №: 2896 Спасибо сказали: 0 раз(а) Репутация: 0 |
Я посмотрел ещё скрипт configure и у меня есть ощущение, что его нельзя использовать для создания конфигурации под win32, а надо руками/скриптом воспроизводить то, что делает configure.exe под винду...
|
|
|
Dovgon |
21.9.2011, 13:25
Сообщение
#3
|
Студент Группа: Участник Сообщений: 92 Регистрация: 5.1.2011 Пользователь №: 2325 Спасибо сказали: 3 раз(а) Репутация: 0 |
качаешь исходник
распаковаваешь configure make make install все можн прочить в readme скаченного архива Qt. |
|
|
igor_bogomolov |
21.9.2011, 22:55
Сообщение
#4
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
Такое ощущение, что скрипты конфигурации где-то внутри всё-таки детектят, что сборочный хост - это юникс и соответственно включаются не те хедера и собираются не те файлы... Для вашей задачи configure не нужен. Вы должны сначала собрать qmake под хостовую систему, а потом уже, используя его, собирать необходимые вам модули, используя отредактированный spec-файл (qmake -spec mymkspec && make && make install)
|
|
|
Текстовая версия | Сейчас: 26.11.2024, 20:59 |