什么是-qnoweakexp xlC编译器标志的gcc等价物?

时间:2016-11-21 11:29:07

标签: gcc weak-symbol

我们目前正在从AIX和xlC编译器迁移到Linux和GNU工具链。在我们的C / C ++编译过程中,我们使用-qnoweakexp编译器标志来禁用弱符号的导出。请参阅xlc compiler reference

我在gcc Options Summary中找不到等效的编译器标志。最终目标是不会将弱符号导出到我们的编译目标。我能找到的最接近的gcc标志是-fno-weak,但gcc manual表明此标志不适用于生产代码。

背景:我们需要将我们正在使用的框架的一些C库与我们的编译目标链接,并且这些库导出一些相同的弱符号,我们自己的代码将不使用它们这面旗帜。这导致了分裂错误的发生。这些符号显然是为我们正在使用的一些STL容器生成的,例如:

std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Clear()

即。它不是某些符号在源代码中被明确注释为弱的情况,因此无法通过删除注释来解决问题。

1 个答案:

答案 0 :(得分:0)

不完全等效,但应该足够用于您的用例:-fvisibility-inlines-hidden。此选项将导致无法从库中导出内联函数(如来自标题的STL定义)。有关此检查的更多信息GCC wiki