Я хочу перехресно скомпілювати бібліотеки Qt (і врешті-решт мою програму) для цілі Windows x86_64 за допомогою хост-машини Linux x86_64. Я відчуваю, що мені близько, але я можу мати принципове нерозуміння деяких частин цього процесу.
Я почав з того, що встановив усі пакети mingw на свою машину Fedora, а потім win32-g++
змінив файл qmake.conf відповідно до мого середовища. Однак я, здається, застряг у деяких, здавалося б, очевидних параметрах налаштування для Qt: -platform
і -xplatform
. Документація Qt говорить, що це -platform
повинна бути архітектура хост-машини (де ви компілюєте) і -xplatform
повинна бути цільовою платформою, для якої ви хочете розгорнути. У моєму випадку я встановив -platform 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 .
Запитання:
При перехресній компіляції чогось на зразок Qt для Windows з хосту Linux, чи слід коли-небудь викликати власний компілятор ? Тобто, під час крос-компіляції, чи не слід нам використовувати лише крос-компілятор? Я не розумію, чому сценарій налаштування Qt намагається викликати власний компілятор моєї системи, коли я вказую цю
-xplatform
опцію.Якщо я використовую крос-компілятор mingw, коли мені доведеться мати справу з файлом специфікацій? Файли специфікацій для GCC для мене все ще є загадкою, тому мені цікаво, чи допоможе мені якийсь досвід тут.
Загалом, що, окрім зазначення крос-компілятора в моєму qmake.conf, що ще мені потрібно розглянути?