ArmClang/ArmLinkLTO删除带有__attribute__((used))的对象
创始人
2024-09-13 18:30:22
0

对于这个问题,可以采取以下两种方法来解决:

1.设置编译器参数使编译器不删除带有__attribute__((used))的对象,例如:

attribute((used)) int some_variable = 0;

int main() { return some_variable; }

编译命令为:

armclang --target=aarch64-arm-none-eabi -c source_file.c -flto -O3 -ffunction-sections -fdata-sections -Wl,--gc-sections -nostdlib -T linker_script.ld-o object_file.o

在此命令中,-Wl,--gc-sections 参数告诉链接器删除未被引用的代码和数据段,因此,可以通过将此选项设置为-no-gc-sections 来禁用删除操作来解决这个问题。

2.定义宏来替代__attribute__((used)),例如:

#ifdef GNUC #define ATTRIBUTE_USED attribute((used)) #else #define ATTRIBUTE_USED #endif

ATTRIBUTE_USED int some_variable = 0;

int main() { return some_variable; }

在该解决方法中,将__attribute__((used))替换成一个宏,并通过条件编译指令来限定使用该宏的编译器。这样,在编译器不支持__attribute__((used))的情况下,使用宏来实现同样的效果。

相关内容

热门资讯

透视透视!wepoker底牌透... 透视透视!wepoker底牌透视脚本怎样安装,约局吧如何查看是否有挂,介绍教程(本然是真的有挂);w...
透视游戏!wpk透视脚本,we... WePoker透视辅助版本解析‌,透视游戏!wpk透视脚本,wepoker黑侠破解,wepoke教程...
透视科技!wpk辅助购买,wp... 透视科技!wpk辅助购买,wpk插件辅助,切实教程(一向真的有挂);wpk辅助购买是一款益智类棋牌手...
透视有挂!wepoker透视脚... 透视有挂!wepoker透视脚本苹果,pokemmo辅助器脚本下载,AI教程(原本真的有挂);(需添...
透视脚本!红龙poker脚本,... 透视脚本!红龙poker脚本,德普之星透视辅助软件,曝光教程(总是有挂);支持多人共享记分板与复盘,...
透视辅助!wepoekr底牌透... 透视辅助!wepoekr底牌透视,werplan外卦神器,黑科技教程(其实有挂)科技教程也叫必备教程...
透视软件!wpk透视辅助软件,... 透视软件!wpk透视辅助软件,德州机器人代打脚本,微扑克教程(真是存在有挂);大神普及一款德州ai内...
透视最新!aapoker辅助挂... 透视最新!aapoker辅助挂,wepoker透视底牌,新版2025教程(都是是真的有挂)1、许多玩...
透视免费!智星菠萝可以辅助吗,... 1、透视免费!智星菠萝可以辅助吗,德州辅助工具到底怎么样,必胜教程(先前真的有挂)2、进入游戏-大厅...
透视安装!hhpoker辅助器... 透视安装!hhpoker辅助器,pokemmo辅助器脚本下载,扑克教程(原本真的是有挂);原来确实真...