У меня есть библиотека (a.so) с базовыми классами (MyClassA). Другая библиотека (b.so) имеет класс MyClassB, который наследуется от MyClassA (в a.so). Я компилирую MyClassA.h и MyClassA.cpp, изолированные в a.so. MyClassB.h и MyClassB.cpp скомпилированы отдельно (со ссылкой на MyClassA.h, но без добавления MyClassA.h в b.so). Затем я связываю b.so с a.so.Общие библиотеки C++ с наследованием
Подводя итог:
- a.so содержит MyClassA.h и MyClassA.cpp
- b.so содержит MyClassB.h и MyClassB.cpp
- b.so связана с a.so
Когда я пытаюсь скомпилировать, я получаю несколько ссылочных ошибок для MyClassA, вызванных b.so.
Когда я компилирую b.so и добавляю MyClass.h к нему, библиотека компилируется и запускается без каких-либо ошибок. Следовательно:
- a.so содержит MyClassA.h и MyClassA.cpp
- b.so содержит MyClassB.h, MyClassB.cpp И MyClassA.h
- b.so связана с a.so
Возможно ли, чтобы на C++ использовался мой первый вариант, или он всегда должен включать базовые заголовки в библиотеку подкласса?
Как первый вариант должен работать, нам нужно увидеть больше ошибок и кода, особенно заголовков, и то, что они включают в себя – Mark