【发布时间】:2011-06-27 01:19:47
【问题描述】:
我在 Linux/Mac 下编译了一个隐藏符号的 C++ 库。我已经为我的所有类使用了 _attribute_ ((visibility("hidden"))) 并使用选项 (-c -O2 -fPIC -MMD -MP -MF)。在 Mac 下,使用 MacDependencies (http://code.google.com/p/macdependency/),工作做得很好,因为我只看到了我的导出(我实际上看到了之前和之后的区别)。
但是,我注意到使用 nm 我仍然可以看到所有符号的名称。这在 Mac 和 Linux 下都会发生。
这是为什么呢?有什么办法可以避免吗?
最好的问候和感谢, 乔
【问题讨论】:
-
在 Linux 上,您是否使用
nm -D来显示动态符号表?可见性仅适用于动态符号表。 -
nm -D 确实给了我正确的“列表”,谢谢。
标签: linux g++ visibility symbols hidden