是否可以不让我的可执行文件中的符号可用于动态打开的库

Is it possible to NOT make symbols from my executable available to dynamically opened libraries?

本文关键字:用于 符号 动态 我的 可执行文件 是否      更新时间:2023-10-16

当我dlsym()某个库时,如果在库的代码中引用,则可以访问主可执行文件中的所有全局符号。

如何避免这种情况?至少dlsym()的标志似乎没有提供这样的特性。

尝试默认隐藏主可执行文件中的所有符号。也就是说,使用-fvisibility=hidden和可能更多的选项进行编译,如下所述:如何将gcc-fvisibility选项应用于静态库中的符号?

这将使您的主要可执行文件不导出任何符号,因此库将找不到任何内容。