链接器错误中的"Symbol from plugin"

"Symbol from plugin" in linker error

本文关键字:Symbol plugin from 错误 链接      更新时间:2023-10-16

所以,我做了一些愚蠢的事情,给自己一个链接器错误:

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)':

我很好奇"插件中的符号"部分是什么意思?在我与链接器错误的各种冒险中,我以前从未见过这种情况。在这种情况下,什么是"插件"?

这是指提高优化质量的链接器插件; 可能构建正在使用标志-fuse-linker-plugin

当链接器

支持时,链接器插件(请参阅 -fuse-linker-plugin)将有关已使用符号和外部可见符号的信息传递给编译器。

[...]

此信息指定可以从外部访问哪些符号(通过非 LTO 对象或在动态链接期间)。

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

相关文章: