Заказ линии связи - отрывочная, капризная вещь. Правило состоит в том, что библиотеки должны быть связаны в обратном порядке зависимости: если объект A находится в libfoo и зависит от объекта C из libbar, тогда строка ссылки должна идти -lfoo -lbar
, а не наоборот. Наличие -lsupc++
в конце гарантирует, что если какие-либо другие библиотеки, которые вы связываете, зависят от объектов в libsupc ++, зависимость разрешится правильно. В вашем случае конечные библиотеки, вероятно, просто не имеют неразрешенных зависимостей.