嵌入式技术论坛
直播中

刘润生

8年用户 757经验值
私信 关注
[问答]

scons指令为什么编译不了虚拟机呢?

倒在了玩qemu的第一步
输入scons编译之后就说“No module named building”,如图
2.jpg
并且我打开出错的文件发现SConscript是一个python文件,里面好像是“from building import *”这一行出错了,我pip install building发现并没有这个包,有谁能帮帮我吗?


回帖(3)

韩刚龙

2023-3-6 10:25:01
可能是路径问题
而当前的内容并不完整
$ cat ../umailbox/SConstruct
import os
import sys
# add building.py path
sys.path = sys.path + [os.path.join('..','..','..','tools')]
from building import *
BuildApplication('umailbox', 'SConscript', usr_root = '../../..')
举报

韩刚龙

2023-3-6 10:25:09
修改为:
import os
import sys
if os.getenv('RTT ROOT'):
    RTT_ROOT = os. getenv('RTT_ROOT')
else:
    RTT_ROOT = os.path.normpath(os.getcwd()+ '/../..')
sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')]
try:
    from building import *
except:
    print('Cannot found RT-Thread root directory, please check RTT_ROOT')
    print(RTT_ROOT)
    exit(-1)
# add building.py path
#sys.path = sys.path + [os.path.join('..','..','..','tools')]
#from building import *
BuildApplication('umailbox', 'SConscript', usr_root = '../../..')
scone 编译 /userapps/apps/umailbox 正常
举报

王银喜

2023-3-6 10:25:25
感觉是你的代码包不全,就这样操作没错的。
building这包在tools/building.py,你检查下这文件是否存在。
在SConstruct中有
sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')]
from building import *
你可以在这里print一下RTT_ROOT和sys.path
举报

更多回帖

发帖
×
20
完善资料,
赚取积分