解决 linux下编译make文件报错“/bin/bash^M: 坏的解释器:没有那个文件或目录” 问题

  PS背景:我在公司做sdk 的pc端开发,所以经常会在win下编译通过之后跑到linux下再运行一次已确保能支持多平台。

        今儿在win下跑完一程序,然后放到linux下跑的时候,我用指令:


sudo ./build.sh

但是却没有任何反应。于是我换了指令,用


chmod u+x build.sh
./build.sh

报错 “build.sh  /bin/bash^M: 坏的解释器:没有那个文件或目录”。 以前遇到这个问题,换了几种编译方法就解决了,单这次还是不行,于是又换:
bash build.sh
编译的时候报错 :

后来一想 \r 这个符号怎么出现的,于是各种百度,才知道原因可能是因为我在win下操作的时候,修改到了此文件。

        在win下编辑的时候,换行结尾是\n\r , 而在linux下 是\n,所以才会有 多出来的\r

        用指令:


sed -i 's/\r$//' build.sh
        会把 build.sh 中的\r 替换成空白!

        再次编译!成功!!

PS:写在后面

参考文章:http://www.educity.cn/wenda/153393.html

一楼大牛提议,有一个dos2unix的软件,我一看果然好用!感谢CedarDiao  大牛!
--------------------- 
转:https://blog.csdn.net/liuqiyao_01/article/details/41542101 
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
该错误提示表明在执行make命令过程中,发现了一个问题,系统找不到../libtool文件目录。导致make失败,报错为libcurl。 可能的原因有: 1. libtool文件目录不存在:请检查是否确实存在../libtool文件目录。可以使用ls命令来查看目标路径是否正确。 2. libtool未正确安装:在某些情况下,系统可能没有安装或者安装了错误的libtool库。可以使用apt-get(适用于Debian/Ubuntu)或yum(适用于CentOS/RHEL)等包管理器来安装正确版本的libtool。 3. 环境变量问题:查看系统的环境变量配置,确保配置正确,包括PATH、LD_LIBRARY_PATH等。可以使用echo $PATH和echo $LD_LIBRARY_PATH命令来查看。 4. 编译配置文件问题:查看makefile文件的第1980行,检查是否有正确引用libcurl,确认编译配置文件中的路径和文件名是否正确。 解决问题的步骤如下: 1. 检查文件路径:确保../libtool文件目录存在,并且有相应的读取权限。 2. 安装或更新libtool:使用适用于当前系统的包管理器,安装或更新libtool库。 3. 检查环境变量:确保环境变量配置正确,包括PATH和LD_LIBRARY_PATH等。 4. 检查makefile文件:定位到makefile文件的第1980行,检查是否正确引用了libcurl库。 如果以上步骤仍然无法解决问题,建议搜索相关错误提示或者上报给开发者或者技术支持人员,以便获取更准确的解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值