【ARM 嵌入式 编译系列 2.4 -- 编译参数-Wl,--gc-sections | -wsuggest-attribute=pure | -wreal-q-constant |】

本文介绍了在ARM嵌入式开发中使用GCC编译器的一些关键参数,如-Wl选项,以及链接器选项--gc-sections,用于删除未使用的代码和数据节,减小二进制文件大小。还涵盖了-Wshadow、-Wlogical-op等警告选项,用于提升代码质量和避免潜在问题。
摘要由CSDN通过智能技术生成


请阅读【嵌入式开发学习必备专栏 之 ARM GCC 编译专栏】


概述

在使用 GCC (GNU Compiler Collection) 进行编译时,可以通过不同的编译参数(标志)来控制编译行为、优化级别、警告输出等。以下是您列出的一些 GCC 编译参数的介绍:

编译参数详细介绍

参数 作用
–all-warnings 与-Wall 相同。 请改用后一个选项。
–extra-warnings 与-Wextra 相同。 请改用后一个选项。
-W 不建议使用此开关;请改用 -Wextra
-Wabi 当结果与 ABI 相容的编译器的编译结果不同时给出警告
-Waddress 使用可疑的内存地址时给出警告
-Waggregate-return 当返回结构、联合或数组时给出警告
-Waliasing 为可能的虚参重叠给出警告
-Walign-commons 此参数已被 弃用。在以前的 GCC 版本中,它用于控制 COMMON 块(未初始化的全局变量)中变量的对齐方式。
-Wall 启用大部分警告信息
-Wampersand 若延续字符常量中缺少 & 则给出警告
-Warray-bounds 当数组访问越界时给出警告
-Warray-temporaries 创建临时数组时给出警告
-Wassign-intercept 当 Objective-C 赋值可能为垃圾回收所介入时给出警告
-Wattributes 当对属性的使用不合适时给出警告
-Wbad-function-cast 当把函数转换为不兼容类型时给出警告
-Wbuiltin-macro-redefined 当内建预处理宏未定义或重定义时给出警告
-Wc+±compat 当在 C 语言中使用了 C 与 C++ 交集以外的构造时给出警告
-Wc++0x-compat 当 C++ 构造的意义在 ISO C++ 1998 和 ISO C++ 200x 中不同时给出警告
-Wcast-align 当转换指针类型导致对齐边界增长时给出警告
-Wcast-qual 当类型转换丢失限定信息时给出警告
-Wchar-subscripts 当下标类型为“char”时给出警告
-Wcharacter-truncation 对被截断的字符表达式给出警告
-Wclobbered 对能为"longjmp"或"vfork"所篡改的变量给出警告
-Wcomment 对可能嵌套的注释和长度超过一个物理行长的 C++ 注释给出警告
-Wcomments -Wcomment 的同义词
-Wconversion 当隐式类型转换可能改变值时给出警告
-Wconversion-extra 对大多数隐式类型转换给出警告
-Wconversion-null 将 NULL 转换为非指针类型时给出警告
-Wcoverage-mismatch 这个选项控制了当使用 Gcov 进行测试覆盖率分析时,如果编译的源代码和测试运行时使用的源代码不匹配,GCC 是否应该发出警告。这可以帮助识别测试覆盖率数据可能不准确的情形。
-Wcpp 如果在 C 文件中使用了传统的预处理指令(即没有以 # 开头的预处理指令),这个选项会导致 GCC 发出警告。
-Wctor-dtor-privacy 当所有构造函数和析构函数都是私有时给出警告
-Wdeclaration-after-statement 当声明出现在语句后时给出警告
-Wdeprecated 使用不建议的编译器特性、类、方法或字段时给出警告
-Wdeprecated-declarations __attribute__((deprecated)) 声明给出警告
-Wdisabled-optimization 当某趟优化被禁用时给出警告
-Wdiv-by-zero 对编译时发现的零除给出警告
-Wdouble-promotion 对从“float”到“double”的隐式转换给出警告
-Weffc++ 对不遵循《Effetive C++》的风格给出警告
-Wempty-body 当 if 或 else 语句体为空时给出警告
-Wendif-labels 当 #elif 和 #endif 后面跟有其他标识符时给出警告
-Wenum-compare 对不同枚举类型之间的比较给出警告
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

主公讲 ARM

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值