【发布时间】:2014-10-31 16:00:04
【问题描述】:
当我dlsym()某个库时,如果在库的代码中引用,我的主可执行文件中的所有全局符号都可以访问。
如何避免这种情况?至少dlsym() 的标志似乎没有提供这样的功能。
【问题讨论】:
-
你使用的是什么操作系统?
-
@JohnZwinck Archlinux.
标签: c++ c gcc dynamic-loading
当我dlsym()某个库时,如果在库的代码中引用,我的主可执行文件中的所有全局符号都可以访问。
如何避免这种情况?至少dlsym() 的标志似乎没有提供这样的功能。
【问题讨论】:
标签: c++ c gcc dynamic-loading
尝试将主可执行文件中的所有符号默认隐藏。也就是说,使用-fvisibility=hidden 和可能的更多选项进行编译,如下所述:How to apply gcc -fvisibility option to symbols in static libraries?
这应该使您的主要可执行文件不导出任何符号,因此库将找不到任何东西。
【讨论】: