zoukankan      html  css  js  c++  java
  • GCC G++ Make CMake自我科普

    Linux下gcc g++ make cmake 联系和区别

    C/C++程序从编写到可执行一般经历这几个阶段

    • 编写源代码
    • 编译器编译代码生成目标文件,如.o文件
    • 链接器链接目标文件和其他目标文件/库文件,生成可执行文件,如.exe

    Linux平台下,.o文件一般是通过编译,但还未链接的目标文件。.out文件是经过相应的链接产生的可执行文件。

    编译和链接是靠gcc和g++编译器完成的,两者在编译阶段相同。但是链接阶段g++默认链接C++库。所以一般使用:

    • g++编译cpp文件
    • gcc编译c文件
    • g++也可以编译c文件,gcc要编译cpp文件则需要使用-lstdc++参数,使其链接c++库

    如果编译和链接阶段的源文件太多,一个一个编译就很麻烦。

    于是make工具就出现了,通过编写一个makefile规则文件,make就能依据规则文件批处理编译。

    编写makefile文件也是一件麻烦的事情

    于是cmake工具就出现了,通过编写一个cmakelist规则文件,cmake就能依据规则自动生成makefile文件或project文件。

    所以使用cmake的基本步骤就是:

    1. 写代码
    2. 写cmakelist
    3. 使用cmake
    4. 生成makefile (包含了多条链接和gcc/g++编译语句)
    5. 使用make
    6. 生成可执行文件
  • 相关阅读:
    树状数组
    POJ 1178 -- 国王和骑士
    read
    优先队列
    统计八连块
    1579、Function Run Fun(记忆化搜索)
    5488: 石子归并II (区间DP+环形DP+四边形不等式优化)
    4797: 能量项链(区间DP,环形DP)
    5936 桃子的矩阵快速幂
    Happy Necklace(找规律+矩阵快速幂)
  • 原文地址:https://www.cnblogs.com/jiy-for-you/p/7282011.html
Copyright © 2011-2022 走看看