у некоторых людей, использующих мою общую библиотеку, возникают проблемы с ее загрузкой.
Я уже сказал им, чтобы установить «gcc-libs», как указано Вот.
Я также сказал им самим скомпилировать общую библиотеку, но без удачи.
Есть ли другие решения этой проблемы?
Это файл журнала программы, которая пытается загрузить плагин в CentOS6:
[23:16:57] Failed (plugins/RouteConnectorPlugin.so: undefined symbol: _ZN3tbb8internal12NFS_AllocateEjjPv)
[23:16:57] Loading plugin failed: RouteConnectorPlugin.so
Программа с открытым исходным кодом и находится Вот, он написан на смеси C и C ++ (программа скомпилирована только для x86).
Если ваша разделяемая библиотека зависит от другой разделяемой библиотеки, вы должны ссылаться на нее. Затем, когда ваша библиотека будет связана с другой исполняемой / разделяемой библиотекой, эта зависимость будет автоматически загружена, и пользователям не нужно явно ссылаться на эту зависимость.
Неопределенный символ
$ c++filt _ZN3tbb8internal12NFS_AllocateEjjPv
tbb::internal::NFS_Allocate(unsigned int, unsigned int, void*)
которая может быть из библиотеки intel-tbb, которую вы упомянули. Поскольку это зависимость вашего кода, пользователи ожидают, что вы должным образом объявите эту зависимость, связав ее с вашей библиотекой.
Смотрите, например этот ответ о том, как это сделать с GCC.
Других решений пока нет …