Сборка статических бинарников#
С Glibc статически слинковать не получится. На целевой системе должна быть установлена та же версию Glibc, которая использовалась при линковке. Это потребует от нас собирать приложение с очень старым glibc, чтобы поддерживать не только самые новые дистрибутивы, либо ограничиться несколькими дистрибутивами и собирать приложение под их конкретные версии. Самым простым выходом остаётся свалить сборку приложения на пользователя.
Если очень надо линковать статически, то рекомендуют делать это с Musl.
sudo pacman -Sy musl
Собирается приложение с такими ключами:
nim c \
--gcc.exe:musl-gcc \
--gcc.linkerexe:musl-gcc \
--passL:-static \
-d:release \
program.nim
Могут возмникнуть проблемы с дополниельными библиотеками. Например, у меня не получилось слинковать ncurses. Может быть есть способ, но за ~час с лишним ничего не нашёл. Оставлю это будущему себе.
Почитать на тему: