Как настроить Qt для кросс-компиляция из Linux в Windows цель?

Я хочу перекрестно скомпилировать библиотеки Qt (и, в конечном итоге, мое приложение) для целевого x86_64 Windows с помощью хост-машины Linux x86_64. Я чувствую, что я близок, но у меня может быть фундаментальное непонимание некоторых частей этого процесса.

Я начал с установки всех пакетов mingw на компьютере Fedora, а затем модифицировал файл win32-g++qmake.conf в соответствии с моей средой. Тем не менее, я, похоже, застрял с некоторыми, казалось бы, очевидными параметрами конфигурации для Qt: -platformи -xplatform. В документации Qt говорится, что -platformдолжна быть архитектурой хост-машины (где вы компилируете), а -xplatformдолжна быть целевой платформой, для которой вы хотите развернуть.В моем случае я установил -платформа linux-g++-64и -xplatform linux-win32-g++, где linux-win32-g++ является моей модифицированной конфигурацией win32-g++.

Моя проблема заключается в том, что после выполнения configure с этими параметрами я вижу, что он вызывает компилятор моей системы вместо кросс-компилятора (x86_64-w64-mingw32-gcc). Если я опускаю опцию -xplatformи устанавливаю -platformна мою целевую спецификацию (linux-win32-g++), он вызывает кросс-компилятор, но затем ошибки, когда он находит некоторые функции, связанные с Unix, не определяются.

Вот некоторые выводы из моей последней попытки: http://pastebin.com/QCpKSNev.

Вопросы:

  1. При перекрестной компиляции чего-то вроде Qt для Windows с хоста Linux следует ли вызывать собственный компилятор ? То есть, во время процесса кросс-компиляции, не следует ли использовать только кросс-компилятор?Я не понимаю, почему скрипт настройки Qt пытается вызвать собственный компилятор моей системы, когда я указываю опцию -xplatform.

  2. Если я использую кросс-компилятор mingw, когда мне придется иметь дело с файлом спецификаций? Файлы спецификаций для GCC все еще остаются загадкой для меня, поэтому мне интересно, поможет ли мне какая-то предыстория здесь.

  3. В общем, помимо указания кросс-компилятора в моем qmake.conf, что еще мне нужно рассмотреть?

78
задан tshepang 2 October 2013 в 09:54
поделиться