У меня есть библиотека (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.
Подведем итог:
- 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 ++ использовать мой первый вариант или требуется всегда включать базовые заголовки в библиотеку подклассов?