scons构建mdk工程
Posted 超凡东皇
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了scons构建mdk工程相关的知识,希望对你有一定的参考价值。
通过scons构建出的不带操作系统的工程,可通过如下链接下载:
早就发现scons构建工程很方便很省事,但之前试过多次都没成功,网上也很少介绍这方面的资料,最近闲的慌又捣鼓了一阵,终于成功了,记录一下之前遇到的坑!
No module named building
之前一直不成功,比如遇到如下这种情况:
scons: Reading SConscript files ...
ImportError: No module named building:
因为本人对python也不是很熟练,开始我以为缺少的这个building模块是个公用的模块,网上一阵苦找,通过各种方法去导入这个模块,都没成功,实际上这个模块就在工程的tools目录下,之所以找不到是import这个模块的地方设置的路径不对,就在创建工程的目录下SConstruct文件中设置路径,如下:
上面执行的是RTT_ROOT = os.path.normpath(os.getcwd() + '/../..')这条语句,意思就是是获取当前路径之后往后退两级目录,实际就到了tools这个文件夹的目录,路径设置对了就可以成功导入building模块
template模板作用
其次需要说明一下的就是template.uvprojx这个模板,开始并不知道这个模板用来干嘛,但是没有这个模板又构建不了,后来捣鼓一通大概摸清了,scons就是在这个模板上进行构建工程的,比如里边选择的mcu型号,编译选项,设置的编译参数等等都会原封不动的以它为标准进行构建工程,当然这些参数也是可以修改的,比如在rtconfig.py文件中就可以对这些进行修改,只要在rtconfig.py中没有修改的就以template.uvprojx模板的为准,rtconfig.py中如下参数要注意。
building.py文件作用
这个文件是scons构建工程的关键文件,包含了构建方法,构建指令,生成目标等,其中构建方法一般是引用其它模块的,比如keil.py,具体可以看代码,包含的指令如下:
生成目标工程:
如果在tools这个文件的同级增加文件夹或者文件,需要修改building.py这个地方:
其它地方增加文件与文件夹只需要照葫芦画瓢,增加相应的源码文件与SConscript文件就可以了,增加后重新
scons构建工程
方法一:在工程目录下双击startcmd.bat
方法二、按住shift键单击鼠标右键打开命令窗口,输入scons --target=mdk5
构建成功。。。
工程测试
下载进板子验证
参考文献:
ChangeLog.md · RT-Thread/rt-thread - Gitee.com
终于用scons创建了一个MDK工程 - fwindpeak - 博客园
perfect...
以上是关于scons构建mdk工程的主要内容,如果未能解决你的问题,请参考以下文章