在 arm-none-eabi-gcc 中,-specs 参数指定了链接器使用的规范文件。这个规范文件包含了与链接器相关的规则和指令,控制了编译器在链接程序库时的行为。
例如,使用 -specs=nano.specs参数可以启用纳米规范(nano.specs)文件,以减小生成的可执行文件的大小,同时也限制了库函数的某些功能,例如使用浮点数和 C++ 异常等。
下面是一个使用 -specs 参数的示例:
arm-none-eabi-gcc -c -mcpu=cortex-m3 -mthumb main.c -o main.o arm-none-eabi-gcc main.o -o main.elf -T linker.ld -specs=nosys.specs
这里,我们使用了 -specs=nosys.specs 参数,启用了 nosys 规范文件,这将禁用库中的系统调用函数。