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++写成,因此几乎可以在任何系统上运行,它所调用的工具也仅仅是本地的构建系统而已。

  • 相关阅读:
    dd是___元素
    【电商8】footer mod_service
    外边距塌陷问题
    隐藏display: ____;
    判断一个32位的整数的二进制有几个1
    8 switch case
    键盘录入
    两个整数的交换
    运算符
    java 异常报错总结
  • 原文地址:https://www.cnblogs.com/justin_s/p/2233992.html
Copyright © 2011-2022 走看看