我的链接器出现了一些恼人的错误:
ld:警告:在boost :: detail :: sp_counted_base :: sp_counted_base()中直接访问boost :: detail :: sp_counted_base的全局弱符号vtable意味着在运行时不能覆盖弱符号。这可能是由于使用不同的可见性设置编译了不同的翻译单元造成的。
在生根之后,我已经确定这是由使用-fvisibility = hidden进行编译引起的,这就是我需要的。所以我需要使用隐藏符号编译boost,所有这些都应该很好,对吧?
我注意到,当使用./b2构建boost时,它会在输出顶部附近列出以下内容:
执行配置检查
- gcc visibility : yes
很好,但我怎样才能关闭能见度?文档似乎没有提到它。我尝试将“-fvisibility-inlines-hidden -fvisibility = hidden”直接传递给编译器,但这不起作用(出于某种原因)。
提前致谢