Опция -static
создает статически связанный двоичный файл без каких-либо зависимостей от разделяемых библиотек. Это делается, если система, в которой происходит связывание, использует разные библиотеки в качестве системы, в которой будет работать двоичный файл. В большинстве случаев это хак, чтобы избежать проблем с несовместимыми библиотеками. Недостаток статически связанного двоичного файла заключается в том, что он намного больше разделяемого связанного и использует гораздо больше памяти. Как правило, лучше создать правильную среду сборки, которая позволяет динамически связывать разделяемые библиотеки.