Я пытаюсь настроить кросс-компилятор с моего ноутбука Ubuntu, чтобы я мог компилировать программы командной строки для Windows. Я скомпилировал все библиотеки, которые мне нужны, с g ++ до сих пор, поэтому я хотел сделать то же самое, чтобы создать эквивалентный бинарный файл Windows.
Я установил gcc-mingw через apt-get, и он установил несколько двоичных файлов. Я успешно скомпилировал программу «Hello World» для Windows, используя i686-w64-mingw32-g++
двоичный файл.
Однако у меня есть некоторые проблемы во время компиляции моего более сложного проекта. Я заметил, что этот двоичный файл включает в себя разные папки из стандартного g ++, и он не может найти зависимости (например, заголовки boost, биты / prevfs.h и т. Д.). Есть ли способ настроить параметры mingw так, чтобы он работал как g ++ из коробки?
Я нашел проблему. Я использовал библиотеку Boost, которую я установил через apt-get. Видимо это означало, что многие #if defined (__GLIBC__)
были автоматически преобразованы в #if 1
, Это вызвало включение некоторых не кросс-платформенных заголовочных файлов. Загрузка библиотеки с веб-сайта и ее использование решили проблему.
Других решений пока нет …