本文介绍在RT-Thread系统,使用scons,如何预编译一个.c文件
首先新建一个测试文件test.c
#include "rtthread.h" void test(void) { rt_kprintf("Hello RT-Thread\n"); }
使用下面的命令导出编译过程到`1.txt`文件
scons -j7 --verbose >> 1.txt
--verbose参数的作用是打印编译的详细过程
使用notepad++ 打开1.txt,搜索test.c,出现的就是test.c编译过程,如下:
arm-none-eabi-gcc -o build\test\test.o -c -mcpu=arm968e-s -mthumb-interwork -mthumb -ffunction-sections -fdata-sections -Os -DHAVE_CCONFIG_H -DCFG_SUPPORT_RTT -DRT_USING_NEWLIB -I. -Iapplications xxxxxx
由于指令太长,后面以xxx代替
修改上面的指令,去掉 -o 加入 -E,并将预编译的结果保存到test.pre中,如下
arm-none-eabi-gcc -E build\test\test.o -c -mcpu=arm968e-s -mthumb-interwork -mthumb -ffunction-sections -fdata-sections -Os -DHAVE_CCONFIG_H -DCFG_SUPPORT_RTT -DRT_USING_NEWLIB -I. -Iapplications xxxxxx >> test\test.pre
输出的test.pre文件路径可以自己设置
**注意**: 因为指令太长,ENV中无法输入太长的指令,所以在项目的根目录下新建test.bat文件,将上面命令拷贝到test.bat中
在ENV中,运行test.bat,在test文件夹中打开test.pre文件,这时就可以看到test.c预编译后的结果了
原文:https://www.cnblogs.com/luanxueguang/p/11279199.html