当我dlsym()
某个库时,如果在库的代码中引用,则可以访问我的主可执行文件中的所有全局符号。
如何避免这种情况?至少没有dlsym()
的标志似乎提供此类功能。
答案 0 :(得分:3)
默认情况下,尝试隐藏主可执行文件中的所有符号。也就是说,使用-fvisibility=hidden
和可能的更多选项进行编译,如下所述:How to apply gcc -fvisibility option to symbols in static libraries?
这应该使您的主要可执行文件不会导出符号,因此库找不到任何内容。