Linux与windows下makefile的不同之处

今日做了一个Linux下makefile移植到windows的任务,踩了不少坑,在此记录一下,希望帮到广大的网友们。

基本的makefile语句如下,由target、dependency还有命令组成。

target: dependency
    echo 'makefile'
    ......
    shell language more

回归主题,makefile本身设计为跨平台了,在Linux与windows上使用makefile并没有什么区别。但问题在于makefile所有的命令都要调用shell来执行的,每一行的命令(如上面的 echo 'makefile')  都会调用一个shell进程进行解释。注意是每一行。

既然命令的调用shell来执行的,那么makefile跨平台的移植重点就在 shell命令的移植了。所以,所有的shell命令都要注意,不然分分钟报错“命令语法不正确”,不要想当然以为命令不可能有错。(:这在Linux上执行得好好的,为什么要windows下就不行了呢?)

 

在此列举一些Linux的bash 与 windows的cmd命令不一样的地方,由于代码在公司,我只好凭借记忆,大家体谅下;

  1. mkdir 命令在Linux下是有 mkdir -p 选项的,但是在windows下的cmd就没有,执行 mkdir -p $(dir),cmd会帮你创建 -p目录。
  2. for 语句是有挺大区别的。
  3. 还有一个很重要的就是文件的分割符号,windows下是 \,Linux下的  /,如果这两个斜杠没有统一好,很容易出现目录或文件找不到的错误

 

总结

  1. 将所有bash命令改为windows的bat批处理命令,或者你可以在makefile中指定使用bash。
  2. 注意目录的分隔符,一个目录需要有同一的目录分隔符。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值