为发布自动化做点贡献——makefile 中使用 xcopy

用makefile做好了一个工程,不同的模块源代码将会被置于不同的文件夹下,而编译后往往也都只是生成在当前编译的目录下。发布的时候就有点麻烦了,比较笨拙的方法就是,一个个的拷贝出来然后再进行打包。这样显然非常繁琐,如果工程的规模较大,这将是一件非常枯燥的事情。如果把这个枯燥的事情变得自动化是不是比较美好呢?

嘿,这其实是很简单的,你只需要在每一个模块生成的命令的后面利用xcopy来拷贝到目的路径就可以了。这个命令是这么写的:

  • DIST_PATH = D:\dist\bin
  • xcopy /y /r /d /f .\*.dll $(DIST_PATH)

有了这句话,就会把当前编译文件夹下生成的所有DLL都拷贝到目的路径下。下面我来解释一下他们含义:

  • “DIST_PATH = D:\dist\bin” 这样定义一个变量作为发布的路径。
    • 好处是:可以做到一改全改,大家都可以理解咯。
    • 需要注意的是:路径不允许用Unix的`/’来进行分割,xcopy是不认识的。
  • xcopy 语句的几个参数,可以在dos命令符下用xcopy /?得到帮助。
    • /y 关闭文件被覆盖的提示信息,保证流程自动化,避免流程被打断。
    • /r 可以覆盖只读文件,确保拷贝工作的顺利进行:-)。
    • /d 根据日期,以新文件覆盖旧文件,减少必要的拷贝。
    • /f 在拷贝的时候显示全部源文件名和目标文件名。

看了这个解释是不是已经能够透彻的理解啦?:-)

当然如果要让这个发布流程都自动化,这样简单的尝试显然是不够的,日后再慢慢探讨吧。

Posted by 王永杰 in C&C++ - Tags:
16 12月

没有评论

还没有评论。

抱歉,评论已被关闭。