我正在学习并尝试为基于皮层的Holtek芯片编写makefile。我打算修改cubemx为STM32生成的makefile作为模板,但我对GCC和make工具不是特别熟悉。
现在我正在学习这个部分。
$(BUILD_DIR)/%.o: %.c Makefile | $(BUILD_DIR)
$(CC) -c $(CFLAGS) -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(notdir $(<:.c=.lst)) $< -o $@
我不知道参数-Wa
、-a
、-ad
和alms
是什么意思。我查看了GCC手册,但只找到了-Wa
:的描述
-Wa,选项
将选项作为选项传递给汇编程序。如果选项包含逗号,它在逗号处被拆分为多个选项。
从这个描述中我无法理解它的真正功能。
它们是什么意思?
我应该在Holtek芯片的makefile中修改它吗?
如Tom V所述,第一个参数-Wa
用于将后续参数-a,-ad,-alms
发送到汇编编译器(GAS(。
参数-a
、-ad
和-alms
用于在编译期间生成列表文件(在构建输出目录中找到的.lst
文件(。
清单文件有助于理解编译后代码的低级细节。
您可以在这里找到有关这些选项(以及其他选项(的更多详细信息:
https://ftp.gnu.org/old-gnu/Manuals/gas-2.9.1/html_chapter/as_2.html#SEC10
这里:
https://www.systutorials.com/generate-a-mixed-source-and-assembly-listing-using-gcc/
我应该在Holtek芯片的makefile中修改它吗?
无需更改,但如果您想更快地编译,可以省略这些参数(在我的设置中并没有太大区别(。