Одна последовательность, которая имеет значение, это где вы помещаете библиотеки, если вы указываете -static
linkage.
Обычно, если вы решите статически связывать библиотеки, библиотеки должны указываться после вашего кода, поскольку GCC сначала сканирует код на наличие зависимостей внешних библиотек, а затем проверяет библиотеки на наличие. Если вы указали библиотеки до код, который нуждается в них, GCC будет сканировать и определять, что библиотеки не нужны, и вы получите ошибки компоновщика.