Сборка статических бинарников#

С 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. Может быть есть способ, но за ~час с лишним ничего не нашёл. Оставлю это будущему себе.

Почитать на тему: