Кросс-компиляция на окнах с Cygwin, Distcc и Cmake

Я хочу, чтобы в моей установке Jenkins (в Windows) использовались подчиненные машины с distcc для сокращения времени компиляции.

Я использую Cygwin на подчиненных для запуска distcc, но у меня возникают проблемы во время настройки, то есть"./configure". Конфигурация выполняет проверки компилятора, но поскольку я выполняю кросс-компиляцию для встроенного устройства, используя CMake для генерации файлов сборки, я предполагаю, что мне не нужно указывать всю эту информацию для distcc.

Я попытался установить его в любом случае, используя:

экспорт CC= путь / к / компилятору

однако это приводит к ошибке:

$ ./configure --prefix=/usr/local
checking build system type... x86_64-unknown-cygwin
checking host system type... x86_64-unknown-cygwin
checking for gcc... path/to/compiler.exe
checking whether the C compiler works... yes
checking for C compiler default output file name... conftest.elf
checking for suffix of executables... .elf
checking whether we are cross compiling... configure: error: in `/distcc-3.2rc1':
configure: error: cannot run C compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details.

Я считаю, что --build настроен правильно, так как я буду запускать distcc через Cygwin, но значения для других переменных неясны.

Кто-нибудь имел успех с такой установкой? Какие-либо другие настройки, которые мне не хватает или есть какие-либо ресурсы для подсказок / советов? Похоже, что нет инструкции по настройке на компьютерах с Windows.

2 ответа

Для любых других, кто может быть незнаком с этим типом установки, компилятор в этом случае означает компилятор, использованный для сборки самой программы distcc (GCC и Make).

В моем случае, так как я буду запускать distcc на Cygwin на всех машинах, мне не нужно было выполнять кросс-компиляцию - поэтому я мог просто позволить AutoMake угадать опцию build/host/target (требуется переместить файлы config.guess и config.sub из automake в distcc).

Обычно из ./configure --helpвы можете увидеть опцию, чтобы сообщить системе сборки, что вы хотите скомпилировать программу, которая будет работать в другой системе (HOST)

Типы систем:
--build = BUILD настроить для сборки на BUILD [угадано]
--host = HOST кросс-компиляция для сборки программ для запуска на HOST [BUILD]

Смотрите также, для Automake:

https://www.gnu.org/software/automake/manual/html_node/Cross_002dCompilation.html

Другие вопросы по тегам