& quot; Символ из плагина & quot; в ошибке компоновщика

Итак, я сделал что-то глупое и получил ошибку компоновщика:

CMakeFiles/pipeline.dir/src/pipeline/pipelineElements/tracker/ObjectTracker.cpp.o (symbol from plugin): In function `ObjectTracker::process(long)':
(.text+0x0): multiple definition of `BackgroundSubtract::OptionTypes<(BackgroundSubtractOptionID)0>::type PipelineConfiguration::getOption<BackgroundSubtract, (BackgroundSubtractOptionID)0>(BackgroundSubtract const&) const'
CMakeFiles/pipeline.dir/src/pipeline/pipelineElements/RegionFinder.cpp.o (symbol from plugin):(.text+0x0): first defined here
CMakeFiles/pipeline.dir/src/pipeline/pipelineElements/tracker/ObjectTracker.cpp.o (symbol from plugin): In function `ObjectTracker::process(long)':

Мне интересно, что означает часть «символ из плагина»? Я никогда не видел этого раньше в моих разных приключениях с ошибками компоновщика. Что такое «плагин» в этом контексте?

-1

Решение

Это относится к плагину линкера, который улучшает качество оптимизации; вероятно, сборка использует флаг -fuse-linker-plugin,

При поддержке компоновщика плагин компоновщика (см. -Fuse-linker-plugin) передает компилятору информацию об используемых и видимых извне символах.

[…]

Эта информация указывает, к каким символам можно получить доступ извне (не-LTO-объектом или во время динамического связывания).

http://gcc.gnu.org/onlinedocs/gcc-4.6.4/gcc/Optimize-Options.html

1

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

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

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