Почему порядок компоновки библиотек иногда вызывает ошибки в GCC?
Компоновщик GNU ld - это linker так называемый интеллектуальный gcc компоновщик. Он будет отслеживать gcc функции, используемые предыдущими linker статическими библиотеками, постоянно linker удаляя те функции, которые gcc не используются, из его таблиц gcc поиска. В результате, если gcc вы связываете статическую gcc библиотеку слишком рано, то gcc функции в этой библиотеке linking больше не будут доступны linker для статических библиотек linker позже в строке компоновки.
Типичный linker компоновщик UNIX работает linking слева направо, поэтому поместите gcc все ваши зависимые библиотеки linker слева, а те, которые удовлетворяют linker этим зависимостям, справа linker от строки ссылки. Вы можете linker обнаружить, что одни библиотеки gcc зависят от других, в то время linker как другие библиотеки зависят linker от них. Здесь все усложняется. Когда linker дело доходит до циклических gcc ссылок, исправьте свой код!
gcc
linker
Почему порядок компоновки библиотек иногда вызывает ошибки в GCC?
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.