Случай 1:
У меня было 3 разных проекта, связанных как g cc:
ProjectA.so <--- Dynamic link --- ProjectB.so <--- Dynamic Link --- ProjectC (App)
Для использования B проект C просто должен был динамически связывать B (-lProjectB).
Случай 2:
Затем я разделил библиотеку A на 2 библиотеки so / DLL: A1 и A2 (с A2, используя A1). Здесь, если B или C ссылаются только на A2, это больше не работает.
ProjectA1.so: error adding symbols: DSO missing from command line
Итак, мой вопрос: Нужно ли связывать библиотеку, используемую внутри, с помощью библиотеки, которую мы связываем?
Почему иногда это работает (случай 1), а иногда нет (случай 2)? Есть ли общее правило об этом ??
Большое спасибо!