zoukankan      html  css  js  c++  java
  • CMake记录(一)

    CMake也用过几次了,这次打算系统的读一读官方文档,作一些记录。以后可以把源代码也看一下。

    如果是找教程,想立即开始用CMake,则推荐CMake实践

    1. CMake本身不是一个build process,而是调用本地build工具,如Make,甚至Visual Studio

    2. CMake在cross-platform软件开发、维护过程中特别有用。

    当我们写出了一些源文件后,它们之间极可能会有一些依赖关系。需求是:我们需要把这些文件make出binary--通常这样就够了。在Linux上,我们可能会使用make,先写一个Makefile来表明依赖关系,如:

       1: main.o: main.c main.h
       2:         cc -c main.c
       3: MyProgram: main.o
       4:         cc -o MyProgram main.o -lm -lz

    嗯,问题解决了。但若有多个平台时呢?可能使用了不同的编译器,于是: 

    cc : Command not found

    即对编译器作出修改,嗯,效果不错,但可能新平台上没有 zlib,于是要把编译选项–lz去掉…如果还有另外一个库也有问题呢?逐个修改是不是太麻烦了?

    Autoconf、Automake这时就可大展身手了,但是它们通常很复杂,以至于基本不想动用它们…而且,写啊写到最后可能会发现,不知什么时候我们已经在文件内写shell脚本了,悲剧的地方在于我们通常会对shell类型作假设,于是一段脚本可能在Bourne shell下是可以的,但在sh下就不能用了 - -!  也就是说这二位使用的工具中,有一些是平台相关的。

    CMake登场了。与上面的工具不同,它对底层平面作了很少的假设,用标准C++写成,因此几乎可以在任何系统上运行,它所调用的工具也仅仅是本地的构建系统而已。

  • 相关阅读:
    开发stark组件
    关于AJAX与form表单提交数据的格式
    博客小项目
    Django Orm 常用字段和参数
    IIS启用兼容模式设置(win2k3—Win7)
    C#调用java类、jar包方法(转)
    解决VML遭遇IE8和XHTML DOCTYPE时不能运行的问题(转)
    Nice Validator(Form验证)及Juery zTree控件
    ASP.NET程序中 抛出"Thread was being aborted. "异常(转)
    SQL语句Where中使用别名作为判断条件
  • 原文地址:https://www.cnblogs.com/justin_s/p/2233992.html
Copyright © 2011-2022 走看看