gcc / diab:保留未使用的函数/部分

时间:2017-06-05 06:41:42

标签: c++ gcc

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

我试过了:

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

但这适用于编译器,而不适用于链接器。

既然链接器需要充电并且使用了-gc-sections,我想保留的功能就“消失了”:(

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

如何指示链接器不要删除我需要的功能。

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

1 个答案:

答案 0 :(得分:1)

我通过控制LD脚本找到了解决方案,

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

有效。