微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

避免在Linux上从可执行文件导出符号

我发现当我将可执行文件链接到静态库(.a)时,静态库中的符号最终会被可执行文件导出.我想避免这种情况并且一无所获.

我试过提供一个版本脚本,但似乎没有任何区别.我的版本脚本的内容如下:

{
    global:
        main;
    local:
        *;
};

有没有办法在静态库中链接时不从可执行文件导出符号?我无法重新编译静态库本身.

解决方法

认情况下,可执行文件不导出符号,除非使用-Wl,– export-dynamic,否则不执行此操作.只有当您动态加载自身需要链接到主可执行文件中的符号的库时,这才是必需的(如果您的库包含覆盖exe中虚拟方法的类,则这是C中的常见情况)

也许你会混淆导出带有调试符号的符号.将为调试器的好处生成调试符号(如果您不剥离exe),但不需要运行.

原文地址:https://www.jb51.cc/linux/393283.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐