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))的情况下,使用宏来实现同样的效果。

相关内容

热门资讯

五分钟介绍!皮皮四川麻将有挂没... 1、五分钟介绍!皮皮四川麻将有挂没有,poker软件免费(详细透视辅助app教程)。2、皮皮四川麻将...
四分钟教程!奈曼麻将有挂吗,w... 四分钟教程!奈曼麻将有挂吗,wpk微扑克辅助透视(详细透视辅助助手教程)1、每一步都需要思考,不同水...
9分钟技巧!欢乐情怀软件使用方... 9分钟技巧!欢乐情怀软件使用方法,红龙扑克辅助工具(详细透视辅助神器教程);科技安装教程;13670...
一分钟详情!jj斗地主透视神器... 1、一分钟详情!jj斗地主透视神器,德扑网上设置(详细透视辅助挂教程)2、进入游戏-大厅左侧-新手福...
一分钟详情!阳光岛牌乐汇辅助工... 一分钟详情!阳光岛牌乐汇辅助工具,云扑克有辅助软件(详细透视辅助工具教程)阳光岛牌乐汇辅助工具平台为...
5分钟规律!开心联盟牛牛怎样胜... 5分钟规律!开心联盟牛牛怎样胜率高,cloud辅助(详细透视辅助挂教程)相信很多朋友都在电脑上玩过开...
四分钟技巧!同城五十k辅助,w... 四分钟技巧!同城五十k辅助,wpk透视辅助哪里下载(详细透视辅助插件教程);是一款可以让一直输的玩家...
一分钟教程!快玩炸翻天有脚本吗... 一分钟教程!快玩炸翻天有脚本吗,德扑之星可以看底牌(详细透视辅助助手教程);一、快玩炸翻天有脚本吗有...
7分钟透明!皮皮跑胡子外挂怎么... 7分钟透明!皮皮跑胡子外挂怎么下,微扑克辅助器是骗人(详细透视辅助神器教程);原来确实真的有挂(需添...
4分钟黑科技!老胡麻将赢牌技巧... 4分钟黑科技!老胡麻将赢牌技巧,好运大菠萝有挂(详细透视辅助助手教程)1、点击下载安装,微扑克wpk...