避免在Linux上从可执行文件导出符号
发布时间:2020-12-13 19:49:40 所属栏目:Linux 来源:网络整理
导读:我发现当我将可执行文件链接到静态库(.a)时,静态库中的符号最终会被可执行文件导出.我想避免这种情况并且一无所获. 我试过提供一个版本脚本,但似乎没有任何区别.我的版本脚本的内容如下: { global: main; local: *;}; 有没有办法在静态库中链接时不从可执行
我发现当我将可执行文件链接到静态库(.a)时,静态库中的符号最终会被可执行文件导出.我想避免这种情况并且一无所获.
我试过提供一个版本脚本,但似乎没有任何区别.我的版本脚本的内容如下: { global: main; local: *; }; 有没有办法在静态库中链接时不从可执行文件导出符号?我无法重新编译静态库本身. 解决方法
默认情况下,可执行文件不导出符号,除非使用-Wl,– export-dynamic,否则不执行此操作.只有当您动态加载自身需要链接到主可执行文件中的符号的库时,这才是必需的(如果您的库包含覆盖exe中虚拟方法的类,则这是C中的常见情况)
也许你会混淆导出带有调试符号的符号.将为调试器的好处生成调试符号(如果您不剥离exe),但不需要运行. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |