Я тестирую distcc и нашел это tutorial очень легко следовать, я должен сказать, что я могу без проблем скомпилировать llvm
, используя CMake + Ninja
и CMake + Makefiles
, используя distcc
и docker
. Поскольку меня особенно интересуют файлы Makefile, я просмотрел файлы, созданные CMake + Ninja
, и все, что я увидел, это то, что distcc
добавляется в качестве префикса к компилятору (например, distcc /usr/bin/gcc
). Поэтому я подумал, что если я создам небольшой проект, используя только файлы Makefile, я смогу добавить distcc
и прочее волшебным образом сработает. Ну, похоже, я что-то упускаю, потому что все, что я получаю, это:
$ ./mk.sh image
make[1]: Entering directory '/home/user/sandbox/distcc-makefiles'
Compiling Lib/Print.c
Compiling Boot/Main.c
distcc[16644] ERROR: compile Boot/Main.c on 172.17.0.2/1 failed
distcc[16644] (dcc_build_somewhere) Warning: remote compilation of 'Boot/Main.c' failed, retrying locally
distcc[16644] Warning: failed to distribute Boot/Main.c to 172.17.0.2/1, running locally instead
distcc[16644] (dcc_please_send_email_after_investigation) Warning: remote compilation of 'Boot/Main.c' failed, retried locally and got a different result.
distcc[16643] ERROR: compile Lib/Print.c on 172.17.0.2/1 failed
distcc[16643] (dcc_build_somewhere) Warning: remote compilation of 'Lib/Print.c' failed, retrying locally
distcc[16643] Warning: failed to distribute Lib/Print.c to 172.17.0.2/1, running locally instead
distcc[16643] (dcc_please_send_email_after_investigation) Warning: remote compilation of 'Lib/Print.c' failed, retried locally and got a different result.
make[1]: Leaving directory '/home/user/sandbox/distcc-makefiles'
Запустив пример llvm
, я отбросил все проблемы с подключением docker
и конфигурацией distcc
, я попытался найти любые идеи/примеры в Интернете, но большинство людей используют CMake
, что не относится к моему случаю. Предложения приветствуются, я основывал свой демонстрационный проект на реальном проекте, над которым я работаю, так что в основном выглядит Makefile
.
Я не знаю, чего мне не хватает...
Версии:
Просто для справки:
$ distcc --version
distcc 3.1 x86_64-pc-linux-gnu
(protocols 1, 2 and 3) (default port 3632)
built Oct 19 2017 11:05:18
Copyright (C) 2002, 2003, 2004 by Martin Pool.
Includes miniLZO (C) 1996-2002 by Markus Franz Xaver Johannes Oberhumer.
Portions Copyright (C) 2007-2008 Google.
$ gcc --version
gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
Copyright (C) 2017 Free Software Foundation, Inc.
$ make --version
GNU Make 4.1
Built for x86_64-pc-linux-gnu
Copyright (C) 1988-2014 Free Software Foundation, Inc.