Правильный заход со статьей, послееднее время QT развивается быстрыми шагами, думаю актуально сейчас. А как насчет сборки под мобильные ОС, что то пробовали?
Нет, мобильные пока не пробовал. Но суть будет та же: 1) Получить работающий кросс-компилятор; 2) Где-нибудь взять системные библиотеки целевой системы; 3) Скачать/собрать Qt; 4) Для QtCreator'a собрать uic, moc
С Android'ом проблем будет меньше всего — под него сборка Qt есть на официальном сайте, SDK открыт, да и компилятор есть.
Как насчет WinCE? Понятно что платформа уже мертвая, но есть еще довольно много встраиваемых систем на ней, да ТСД до сих пор выпускают. По опыту Qt4 знаю что под CE нет QPrinter, QtXmlPatterns и что-то еще.
На официальном сайте последняя сборка для WinCE — именно Qt4. С одной стороны, я не думаю, что они вырезали старые наработки по этой системе. С другой стороны — если кода в 4 версии не было, то он почти наверняка не появился и в 5.
Я компилировал из VS (под winxp) на Win CE 6 (ARM) — всё прекрасно работало.
Qt 4 версии.
P.S. В wiki написано, что QtSerialPort тестировался только на эмуляторе — у меня заработал на реальном устройстве без проблем (это я на всякий случай, мало ли кому пригодится).
Супер! А я всё ручками исходники таскаю, хотя подозревал, что несложно настроить кросс-компиляцию. Среда разработки — Linux, сборки нужны и под win32. Благо редко — только финальные релизы.
Я долгое время использовал bash-скрипт, вариант кросс-компиляции от Silmor'a. Но каждый раз в консоль переключаться и искать скрипт стало лениво. Вот и настроил сборку прям из QtCreator
Максимум, что выдал Tatsh — это LLVM-GCC. Эта инструкция наиболее полная из тех, что я нашёл. На OpenSource Apple clang есть. Так что теоретическая возможность кросскомпилировать clang есть. Но GCC без патчей не собирается. А на clang патчей нет… Чуть позже попробую собрать, гляну что из этого получится.
Макпорты — несколько иная ситуация. Чтоб собрать маковский clang под Linux нужен набор утилит. Как минимум нету xcrun и dsymutil. Также в инструкции от Tatsh не собирается компилятор ресурсов, но вроде с этой задачей справляется и g++, т.к. иконки есть.
Попробовал взять нативные средства из Xcode 4.6. Не получилось:
Скрытый текст
$ ./ld-mac /usr/i686-apple-darwin10/usr/bin/g++ mach/hello.c
collect2: ld terminated with signal 6 [Аварийный останов], core dumped
_ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv: undefined symbol
_ZNSt3__112__next_primeEm: undefined symbol
_ZNSt3__16__sortIRNS_6__lessImmEEPmEEvT0_S5_T_: undefined symbol
_ZNSt3__16__sortIRNS_6__lessIyyEEPyEEvT0_S5_T_: undefined symbol
__cxa_throw: obj=0xccd630
library not found for -lcrt1.10.5.o
Aborted(6) -6 (@0x3e80000372d) PC: 0x7fc93763d425
С clang всё ещё хуже.
Автор частично реализует стандартную библиотеку для Mac OS. Возможно более свежие версии используют больше функций? Можно попробовать с Xcode 4.1 — последняя версия, которая поддерживается shinh'ом
Как уже было сказано — MultiArch. По крайней мере, основные 32 библиотеки ставятся прямо из пакетного менеджера (ia32-libs). Qt4 i386 у меня оттуда почему-то вставать не захотело. Тоже кросс-компилировал.
ia32-libs не нужно ставить. Как написано в описании пакета, это «Transitional package to migrate ia32-libs to multiarch». Если его ставить — он просто тянет кучу 32-битных библиотек. Лучше ставить только то, что действительно нужно.
По поводу 32-битного Qt4: вы наверное опять же ставите transition package (типа libqt4-core). Нужно ставить libqtcore4:i386, тогда всё ок (проверил у себя). Просто посмотрите вывод «aptitude search ~i^libqt | grep 4 | grep -vi transitional», чтобы понять, какие пакеты нужно ставить.
Как ни странно вчера занимался практически тем же самым, qt creator + hidapi, все плавно заработало, хотя настройки креатора не отличаются интуитивностью. Надо будет попробовать кросс-компиляцию. Впечатления от QT положительные, но vb6 все же намного опередил свое время.
QtCreator: Qt кросс-компиляция из linux 64 в linux 32, win32, win64 и Mac OS X; upx, usb, dmg, etc