Порядок, в котором библиотеки и объектные файлы появляются в вашей команде ссылки, имеет значение и может привести к недоразумениям с неопределенными символами.Вы не предоставляете много информации вашему посту, но попробуйте сказать компоновщику, что все ваши библиотеки должны рассматриваться как группа.Как в:
--start-group <all your libs> --end-group
Из документации компоновщика:
Обычно поиск в архиве выполняется только один раз в порядке, указанном в командной строке.Если символ в этом архиве необходим для разрешения неопределенного символа, на который ссылается объект в архиве, который появляется позже в командной строке, компоновщик не сможет разрешить эту ссылку.Сгруппировав архивы, они все будут повторно проверены, пока все возможные ссылки не будут разрешены.Использование этой опции имеет значительную производительность.Лучше всего использовать его только тогда, когда между двумя или более архивами есть неизбежные циклические ссылки.