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

Я работаю над приложением, написанным на C, которое должно работать как минимум на Linux и Windows. Я обычно работаю в Linux, поэтому мне хотелось бы перекрестно скомпилировать мое приложение для Windows.

Моя текущая настройка:

  • Debian GNU / Linux amd64
  • Нет сложной системы сборки, просто простой Makefile
  • Использование GCC для Linux, MinGW для Windows

Мое приложение зависит от ряда библиотек. К счастью, в моем дистрибутиве есть заголовки разработки, поэтому компиляция для Linux работает в значительной степени из коробки, используя pkg-config для определения CFLAGS и LDFLAGS.

Это не так хорошо для Windows. Мой дистрибутив предоставляет компилятор toolchain для x86_64-w64-mingw32, который может найти заголовки разработки, но для некоторых библиотек мне нужны разные версии для Windows. К сожалению, эти версии не предоставлены моим дистрибутивом, поэтому я должен установить их самостоятельно.

Итак: Где я могу установить заголовки разработки для Windows? Как заставить pkg-config найти его? Есть ли способ просто скомпилировать для Windows с помощью одной команды, так же, как я могу скомпилировать для Linux, вызвав make ?


В моем случае одной из библиотек является SDL2. Попытка скомпилировать с заголовками, отправленными моим дистрибутивом, приводит к fatal error: iconv.h: No such file or directory . Google для этой ошибки также говорит нам использовать версию Windows. Другие библиотеки, похоже, работают на этапе компиляции, но, очевидно, они не могут найти их на этапе компоновки.

Interesting Posts

awk: Извлечение фиксированного числа строк, в котором последнее число строк может изменяться

Есть ли DLP-решение для Linux?

Почему мой FTP-скрипт не получит все файлы с помощью команды mget?

Как автоматизировать запись из шаблона в нескольких файлах в зависимости от разных входов со сценарием?

Вычислить хэширование bcrypt из командной строки

Отслеживание процесса узла, выполняющего мой скрипт с «npm start»

Проблемы с установлением соединения с wvdial

Добавьте пользователя в Jessie, который может подключиться к FTP, но не имеет оболочки

Не удается использовать SSH после установки denyhosts

Разбор csv с sed и perl одним слоем?

, как аргумент командной строки для команды, выполняющейся в фоновом режиме

обработка zwrite символа "@"

Как применить тему grub к живому usb?

Файлы крепления петли и монтажные каталоги

Как вызывать привилегии root из моего пользовательского приложения?

Linux и Unix - лучшая ОС в мире.