GCC:独立C ++应用程序中符号的可见性

时间:2010-05-16 12:52:52

标签: c++ gcc visibility debug-symbols

由于a strange C++ warning about the visibility of some symbolsan interesting answer,链接到a paper which describes the different visibility types and cases(第2.2.4节是关于C ++类),我开始怀疑是否需要一个独立的应用程序来导出符号根本不是(main除外 - 还是需要?)。

为什么需要在独立应用程序中导出它们?

“导出符号”是“可见符号”的同义词吗?即隐藏符号是不导出的符号?

可见符号和隐藏符号之间的目标文件是否已经不同?或者这是在链接步骤中进行的,以便只导出可见符号?

对于调试信息,符号的可见性是否重要?或者这是完全独立的,即如果我隐藏所有符号,我也会得到一个很好的回溯? STABS / DWARF如何与符号的可见性相关?

2 个答案:

答案 0 :(得分:4)

对于您不需要的应用程序,因为您没有API ...

可见性仅与共享对象相关。

答案 1 :(得分:2)

  

对于您不需要的应用程序,因为您没有API ...

PE和ELF可执行文件都可以导出符号,就像DLL或共享对象一样。