当我dlsym()
某个库时,如果在库的代码中引用,则可以访问主可执行文件中的所有全局符号。
如何避免这种情况?至少dlsym()
的标志似乎没有提供这样的特性。
尝试默认隐藏主可执行文件中的所有符号。也就是说,使用-fvisibility=hidden
和可能更多的选项进行编译,如下所述:如何将gcc-fvisibility选项应用于静态库中的符号?
这将使您的主要可执行文件不导出任何符号,因此库将找不到任何内容。