本文参考自
Rt-thread社区
Env用户手册
-
SCONS --target=****
输入SCONS --target=****
配置自动生成mdk4/5/IAR相应的工程。
例:生成MDK5的工程scons --target=mdk5
; -
scons:
SCONS
对工程进行编译
注意:默认Env使用ARM GCC编译器,如果要使用keil mdk的ARM CC编译器则需要
在编译工程前在 Env 命令行界面使用下面的 2 个命令指定编译器为 MDK 和编译器路径为 MDK 的安装路径。
set RTT_CC=keil
set RTT_EXEC_PATH=C:/Keilv5
-
scons -s:
scons -s
和scons
命令不同的是此命令不会打印具体的内部命令。 -
scons -c:
清除编译目标。这个命令会清除执行 scons 时生成的临时文件和目标文件。
注意事项:
要生成 MDK 或者 IAR 的工程文件,前提条件是 BSP 目录存在一个工程模版文件,然后 scons 才会根据这份模版文件加入相关的源码,头文件搜索路径,编译参数,链接参数等。而至于这个工程是针对哪颗芯片的,则直接由这份工程模版文件指定。所以大多数情况下,这个模版文件是一份空的工程文件,用于辅助 SCons 生成 project.uvprojx 或者 project.eww。
-
scons -jN:
多线程编译目标,在多核计算机上可以使用此命令加快编译速度。一般来说一颗 cpu 核心可以支持 2 个线程。双核机器上使用scons -j4
命令即可。 -
scons --dist:
搭建项目框架,使用此命令会在 BSP 目录下生成 dist 目录,这便是开发项目的目录结构,包含了RT-Thread源码及BSP相关工程,不相关的BSP文件夹及libcpu都会被移除,并且可以随意拷贝此工程到任何目录下使用。 -
scons --verbose
默认情况下,使用 scons 命令编译的输出不会显示编译参数,如下所示
D:\repository\rt-thread\bsp\stm32f10x>scons
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
scons: building associated VariantDir targets: build
CC build\applications\application.o
CC build\applications\startup.o
CC build\components\drivers\serial\serial.o
...
使用 scons –verbose 命令的效果如下:
armcc -o build\src\mempool.o -c --device DARMSTM --apcs=interwork -ID:/Keil/ARM/
RV31/INC -g -O0 -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD -Iapplications -IF:\Projec
t\git\rt-thread\applications -I. -IF:\Project\git\rt-thread -Idrivers -IF:\Proje
ct\git\rt-thread\drivers -ILibraries\STM32F10x_StdPeriph_Driver\inc -IF:\Project
\git\rt-thread\Libraries\STM32F10x_StdPeriph_Driver\inc -ILibraries\STM32_USB-FS
-Device_Driver\inc -IF:\Project\git\rt-thread\Libraries\STM32_USB-FS-Device_Driv
er\inc -ILibraries\CMSIS\CM3\DeviceSupp