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

在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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值