Вопрос в заголовке. Как можно скомпилировать бинарник для использования на Linux/Android/etc, используя Windows? Для сборки использую make, но, вроде, gcc не умеет собирать те же Linux'овые бинарники из-под винды.
Аналогичный вопрос для статичных и динамических библиотек. Как я понял, тот же NDK может компилировать .so файлы из-под Windows, однако, я так и не разобрался как.
UPD1: Под сборкой из-под Windows я имел ввиду именно сборку из-под Windows. Виртуальные машины - хороший вариант, но мне не подходит.
UPD2: Хорошими вариантами можно назвать следующие:
1. Установка CoLinux и компиляция с его помощью https://stackoverflow.com/a/21550741/10400333
2. Использование crosstool-ng для создания компилера для кросс-компиляции: https://stackoverflow.com/a/4770417/10400333
Могу сказать за обратный процесс. Из под линукса компилирование виндовых программ возможно. Только нужно скачивать виндовый компилятор mingw, который работает под линукс. Скорее всего в винде это также возможно.
Visual Studio 2017 позволяет разрабатывать программы для Linux. Но компиляция и отладка там происходит в Linux. Делается это так:
Запускается виртуальная машина с Линуксом (я делал это с VMware), там должен быть установлен компилятор и отладчик (все это подробно описано в хелпе VS). В сетевых настройках VM указывается IP, на котором эта VM должна сидеть (локальный адрес из 192.168.x.x годится).
В VS создается Линукс проект (при установке VS эта возможность должна быть включена), и в настройках указывается IP виртуальной машины. Это все, дальше разработка и отладка делается так же, как и для Windows.
VS 2017 поддерживает разработку и для мобильных платформ (на С++ для Андроид, к примеру), но сам не пробовал, так что ничего тут не могу сказать.
«Это возможно, но очень, очень дорого» © анекдот.
Действительно, как указали в комментариях, может получиться проще поставить виртуальную машину с тем же дебианом или убунту гигабайт на сорок, сделать там apt-get install build-essential и получить минимальный набор для компиляции C/C++, родные инструменты для сборки пакетов в .deb и т.д.
Учтите ещё, что понятие «бинарник для Linux» весьма расплывчато само по себе, т.к. линуксы все разные даже на одной и той же аппаратной платформе: в разных дистрибутивах разные версии динамических библиотек. Ну и, конечно, разные платформы.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники