【问题标题】:Is it possible to NOT make symbols from my executable available to dynamically opened libraries?是否可以不让我的可执行文件中的符号可用于动态打开的库?
【发布时间】:2014-10-31 16:00:04
【问题描述】:

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

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

【问题讨论】:

  • 你使用的是什么操作系统?
  • @JohnZwinck Archlinux.

标签: c++ c gcc dynamic-loading


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2014-12-05
    • 1970-01-01
    • 2013-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-25
    • 2018-07-12
    • 1970-01-01
    相关资源
    最近更新 更多