ITPub博客

首页 > Linux操作系统 > Linux操作系统 > CMake

CMake

原创 Linux操作系统 作者:clkrst 时间:2008-04-10 13:36:41 0 删除 编辑
开发的程序是linux版的,但是程序员都是习惯用vc的,所以多平台编译是必须支持的。

原来都是两套东西,一套是windows下面vc的工程文件,一套是linux下面的autotool。和平共存,同时维护,但都有各自的缺点。

vc的工程文件创建是非常容易的,但是修改起来就稍微费事了,需要一个一个工程的设置,如果遇到目录结构变更,修改起来还是有点痛苦的。

autotool这套东西缺点是难于创建,你要搞清楚autoconf/automake之间的关系,然后学一大堆互不相同的文法,优点是一旦写好了,小修改还是比较省心的,但大修改也同样很头疼。

所以这次我选了CMake来做这事,首先它的语法简单,你按照它的语法可以很容易写出listfiles,然后再用cmake把这些listfiles转换成你所需要的vc工程文件、或者makefiles。修改起来也是相当的省事。好得很。

类似的工具,我还考虑过Bakefile,这个东西的优势是用xml(有点类似java里面的ant),如果类比的话,可以认为cmake是c,而bakefile是c++。bakefile的缺点主要是没有集成auto config的功能,所以在linux平台上,如果生成autoconf那套东西,还要自己写autoconf的脚本。

我之所以选择CMake,两个原因,一是KDE也是抛弃了autotool转向CMake,看了很受鼓舞;另一个是CMake的手册只是一个html文件,而Bakefile是一堆。呵呵。但是从长远看,我觉得Bakefile才是明日之星啊,也许这是因为我对xml有特殊好感,呵呵。

另外一个小问题,我在写一个脚本的时候发现windows下面的RD命令居然不支持通配符,打开你的命令行窗口,试试这个
MD test.dir
RD *.dir
RD test.*
网上也查不到这个问题的解决,后来还是自己找到了一个办法:
for /d %%C in (*.dir) do RD /s /q %%C
这个只能在批处理脚本里面执行,而且看上去很吓人,但终归是一个解决办法嘛。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/67063/viewspace-232359/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 丁香
下一篇: MSN中招了
请登录后发表评论 登录
全部评论

注册时间:2007-12-19

  • 博文量
    37
  • 访问量
    163942