Это продолжение предыдущего вопроса -
Как использовать другой STL с g++
Теперь я могу получить свой код для сборки, используя другой STL. Однако мне все еще нужно связать -lsupc++ (вместе с указанным другим STL)
Я вижу анекдотические ссылки на то, что -lsupc++ должна быть последней библиотекой в строке ссылок. Я не могу найти окончательный ответ на это. В настоящее время это не последняя библиотека для меня на линии ссылок, и, похоже, все работает нормально.
Спасибо!
Ответ 1 · рейтинг 6 · Meredith L. Patterson
Упорядочение ссылочной строки - дело придирчивое и капризное. Правило состоит в том, что библиотеки должны быть связаны в обратном порядке зависимости: если объект A находится в libfoo и зависит от объекта C из libbar, то линия связи должна идти -lfoo -lbar, а не наоборот. Наличие -lsupc++ в конце гарантирует, что если какие-либо другие библиотеки, которые вы связываете, зависят от объектов в libsupc++, зависимость разрешится правильно. В вашем случае конечные библиотеки, вероятно, просто не имеют неразрешенных зависимостей.