Неопределенный символ & quot; внутреннее выделение tbb & quot; при загрузке разделяемой библиотеки

у некоторых людей, использующих мою общую библиотеку, возникают проблемы с ее загрузкой.
Я уже сказал им, чтобы установить «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).

0

Решение

Если ваша разделяемая библиотека зависит от другой разделяемой библиотеки, вы должны ссылаться на нее. Затем, когда ваша библиотека будет связана с другой исполняемой / разделяемой библиотекой, эта зависимость будет автоматически загружена, и пользователям не нужно явно ссылаться на эту зависимость.

Неопределенный символ

$ c++filt _ZN3tbb8internal12NFS_AllocateEjjPv
tbb::internal::NFS_Allocate(unsigned int, unsigned int, void*)

которая может быть из библиотеки intel-tbb, которую вы упомянули. Поскольку это зависимость вашего кода, пользователи ожидают, что вы должным образом объявите эту зависимость, связав ее с вашей библиотекой.

Смотрите, например этот ответ о том, как это сделать с GCC.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]