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

时间:2014-09-07 04:59:48

标签: c++ c gcc dynamic-loading

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

如何避免这种情况?至少没有dlsym()的标志似乎提供此类功能。

1 个答案:

答案 0 :(得分:3)

默认情况下,尝试隐藏主可执行文件中的所有符号。也就是说,使用-fvisibility=hidden和可能的更多选项进行编译,如下所述:How to apply gcc -fvisibility option to symbols in static libraries?

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