Есть программа на C++ в виде статической либы и фронтэнда. У нее есть плагины, которые тоже используют эту либу (но, понятное дело, не линкуются с ней). В либе есть класс, который используется только в плагинах. Проблема в том, при линковке фронтенда этот класс выкидывается (линкер думает, что раз он нигде не используется, то не нужен). Как ему сказать, чтобы он этого не делал?
И заодно - насколько корректен такой подход к плагинам - делать .so, использующее символы, определенные в другом месте? Это будет собираться, скажем, на Windows? Или лучше сделать либу динамической и все (и фронтенд и плагины) линковать с ней?