Я создаю приложение, которое состоит из двух статических библиотек и исполняемого файла.
Давайте назовем две статические библиотеки:
libusefulclass.a
libcore.a
и приложение:
MyApp
libcore создает и использует класс, определенный в libusefulclass (назовем его UsefulClass)
Теперь, если я свяжу приложение следующим образом:
g++ -m64 -Wl,-rpath,/usr/local/Trolltech/Qt-4.5.4/lib -o myapp src1.o src2.o srcN.o -lusefulclass -lcore
Компоновщик жалуется на то, что методы в libusefulclass не найдены:
undefined reference to `UsefulClass::foo()'
и т.д.
Я нашел обходной путь для этого:
Если UsefulClass также создается в исходных файлах самого исполняемого файла, приложение связывается без проблем.
Мой вопрос: есть ли более чистый способ заставить libcore ссылаться на методы, определенные в libusefulclass, или статические библиотеки просто не могут быть связаны друг с другом?
ТИА
P.S .: В случае, если это имеет значение: приложение разрабатывается на C ++ с использованием Qt, но я чувствую, что это не проблема Qt, а проблема библиотеки в целом.