【发布时间】:2010-11-18 16:40:10
【问题描述】:
我已经使用 VC++2008 和 GCC 构建了一个共享库(.dll、.so)。 问题是在两个库中它都显示了私有符号(类、函数)的名称,并且它们没有被导出。
我不希望我的应用显示未导出的类/函数的名称。 有什么办法可以做到吗?
在 GCC 我做了: 使用 -fvisibility=hidden 编译,然后使用 attribute ((visibility("default")))
公开在 VC++ 中: __declspec(dllexport)
谢谢!
【问题讨论】:
-
除非你习惯于命名方法,比如 TheClientIsAPinhead(),否则我真的不明白你的问题是什么。
-
你说得有道理,但我很偏执,不希望其他人检查程序在类和函数方面的结构。只需要一个只包含导出符号的共享库。
-
你说“它显示”是什么意思? “它”是什么?
-
在.dll或.so的内容中显示了大部分类和函数的名称。
-
您是说,例如,对于 VC 构建,您没有 __declspec(dllexport) 的类仍在导出?您如何检查它们是否被导出 - Dependency Walker?
标签: c++ linker shared-libraries