Я пишу плагин, который использует пользовательскую библиотеку для больших приложений кода. Базовая структура:
Большая база кода -> Плагин -> Пользовательская библиотека
В коде большего размера используется библиотека, которую я также использую в своей пользовательской библиотеке (Eigen), но более старая версия. Из-за этого некоторые подпрограммы, которые я пытаюсь использовать, потерпят неудачу.
Я попытался скрыть все экземпляры современных классов от большой базы кода, которая гарантирует, что плагин использует только правильную библиотеку следующим образом:
#ifdef LIBCOMPILE
#include<Eigen/Dense>
#include<Eigen/Sparse>
#endif
#ifdef LIBCOMPILE
//Definitions and commands that use Eigen
#endif
Однако, когда большая кодовая база пытается создать экземпляр моего плагина, я получаю ошибки SEGABRT, которые исчезают, когда я закомментирую нарушающий подкласс. По-видимому, это связано с проблемами выделения памяти.
Как я могу предоставить классы в моей пользовательской библиотеке большой базе кода, но убедиться, что я использую правильную библиотеку?