0

创建 Windows DLL 时,可以轻松选择导出的符号(使用 dllexport)。在这种情况下,未导出的符号在库外不可见。如何在 Linux 上获得相同的功能?换句话说:假设我在一个项目中有 10 个函数。其中三个应该被导出,剩下的 7 个是不应从库 API 中使用的辅助函数。我如何以这种方式创建 SO 文件,让我实现这一目标?

4

1 回答 1

1

在 Linux/GCC 上,默认情况下会导出所有内容(当然,取决于语言规则:匿名命名空间中的某些内容永远不会被导出)。

如果要停止导出符号,可以使用__attribute__((__visibility__("hidden"))). 例如:

__attribute__((__visibility__("hidden"))) void myPrivateFunction();
于 2013-08-20T19:27:11.687 回答