crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Кросс-компиляция 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  


Цитата(delirium @ 21.9.2011, 13:25) *
Такое ощущение, что скрипты конфигурации где-то внутри всё-таки детектят, что сборочный хост - это юникс и соответственно включаются не те хедера и собираются не те файлы...
Для вашей задачи configure не нужен. Вы должны сначала собрать qmake под хостовую систему, а потом уже, используя его, собирать необходимые вам модули, используя отредактированный spec-файл (qmake -spec mymkspec && make && make install)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 30.11.2024, 10:26