c++ - gcc/diab : keep unused function/sections

标签 c++ gcc

我有一个项目,我想在链接阶段保留某些功能/部分。

我试过:

static void stub_enforcer(void) __attribute__ ((used))

但这是针对编译器的,而不是针对链接器的。

现在链接器负责并使用了 -gc-sections,我想保留的功能“消失了”:(

Removing unused section '.text.func2' in file './src/func2.o'

如何指示链接器不要删除我需要的函数。

我想这样做的原因是通过更改二进制文件中的内容来对该函数进行后期构建使用。

最佳答案

通过控制LD脚本找到了解决办法,

我已将 stub_enforcer 放在一个部分中,并使用 KEEP() 命令来确保链接器不会抛出它。

有效。

关于c++ - gcc/diab : keep unused function/sections,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44363099/

相关文章:

c++ - 为什么 gsl::not_null 确保 ptr 在 get() 上不为空?

c++ - XDrawString 编码不正确

无法从命令行编译c文件

c++ - 模板参数列表太少问题

c - 我如何将 "tell"告诉 C 编译器,代码不应该被优化掉?

c++ - 人们会推荐哪些工具来查看 gcc/linux 目标文件?

c++ - 为什么我们不在路径压缩后更新不相交集的等级?

C++编译问题

c++ - 可变长度数组在主函数中编译,但在类声明中不编译?

c++ - 我们不能在使用 native 客户端工具链时包含 windows.h 吗?