在使用env工具执行
scons —target=mdk5
时出现下面报错信息
KeyError: 'LIBPATH':
File "D:*\SConstruct", line 77:
DoBuilding(TARGET, objs)
File "D:*\rt-thread\tools\building.py", line 874:
EndBuilding(target, program)
File "D:*\rt-thread\tools\building.py", line 975:
GenTargetProject(program)
File "D:*\rt-thread\tools\building.py", line 903:
MDK5Project('project.uvprojx', Projects)
File "D:*\rt-thread\tools\keil.py", line 299:
MDK45Project(template_tree, target, script)
File "D:*\rt-thread\tools\keil.py", line 254:
for path_item in group['LIBPATH']:
是跟scons构建系统有关系,但是我翻遍了项目所有的 SConstruct 和 SConscript文件都没有找到在哪定义了
原本如果是添加lib文件应该是在SConscript文件中添加即可,如下面所示:
LIBS = ['hello']
LIBPATH = [cwd]
group = DefineGroup('Applications', src, depend = [''], CPPPATH = CPPPATH, LIBS=LIBS, LIBPATH=LIBPATH)
但是实际上我项目工程里面没有用到任何lib库。
最后发现是我 修改了 rtconfig.py 中的
CROSS_TOOL = 'gcc'
强制成gcc编译工具,而我却要输出mdk工程,结果会提示 KeyError: ‘LIBPATH’
只要改回来即可解决问题。
CROSS_TOOL = 'keil'
这个错误我遇到好多次了,每次解决后下次遇到又忘了。
原作者:文武斌
|