Ubuntu Shell引发编译问题解决方法

时间:2013-09-04 11:15来源:网络资源 作者:sunplusedu 点击:
    在Ubuntu13.04下编译Realtek提供的Linux source包时发生
 
    [plain]
    make_release: 344: make_release: Syntax error: "do" unexpected (expecting "fi")
    mv: 无法获取"drivers/net/wireless/realtek/pci/rtl8192ce/../../combo/rtl8192c_8192d/rtl8192_8188CE_linux_drv/" 的文件状态(stat): 没有那个文件或目录
    改到Fedora16下就顺利编译通过。
    参考网上资料,发现是 Ubuntu 默认Shell的问题。Unbuntu默认 sh --> /bin/dash,与Fedora标准采用bash不一致。
    echo $SHELL                                     返回 /bin/bash
    ls /bin/sh                                              返回指向/bin/dash
    make 时,虽然makefile中已经有 #! /bin/bash,但实际上调用的还是sh。(该makefile是次级目录中的)
    bash - GNU Bourne-Again SHell
    dash - Debian Almquist Shell
 
    解决方式:
    网上提到无效的文件限定的解决方式:
    文件首行采用      #! /bin/bash            实际上行不通
    文件首行采用      SHELL=/bin/bash        未测试,但应该不行。 echo $SHELL 已经指向bash
    网上资料中提供了最终解决方式:
    [plain]
 
    sudo dpkg-reconfigure dash
    在出现的菜单中选择 NO  (不使用dash)
分享到:

凌阳教育嵌入式培训——全国唯一“原厂嵌入式培训”机构,全国唯一“按班公布学员就业去向”的诚信机构

关注我们:

全国免费咨询电话:156-0117-5697或010-62981113(转2824) 服务监督电话:010-62981113-2800

京ICP备09010168号  京公网安备11010802010586号

北京嵌入式培训中心:海淀区上地信息产业基地中黎科技园1号楼3层A段

Copyright © 2017 SunplusEdu Inc. All Rights Reserved