zoukankan      html  css  js  c++  java
  • C/C++ 项目编译工具简介

    本文基于一个需要对 C 语言家族项目进行编译、生成解决方案的开发者的视角,对编译过程中所需要的各个工具进行简要的名词解释。

    GCC | LLVM 提供编译器 <-- GNU Make 根据配置文件进行编译 <-- Autoconf | CMake 自动生成编译用的配置文件

    注:上面提到的各类集合和工具所能做的事情并不仅仅局限于此。

    GCC | LLVM

    GCCLLVM 是我们在编译 C 系项目时最常使用的两个工具链。
    GCC 的全称是 GNU Compiler Collection , 即 GNU 编译器集合;
    LLVM 的全称就是 LLVM (最开始的时候作为 Low Level Virtual Machine 的缩写,现在涵义已经发生了变化),现在是作为 LLVM 的编译器和工具链集合的一个总称。

    gcc,全称 GNU C Compiler,是 GCC 中的 C 编译器;
    g++,全称 GNU C++ Compiler,是 GCC 中的 C++ 编译器。

    Clang 是 LLVM 集合前端中的 C 系编译器和工具链。Clang 兼容 GCC ,Clang 出现的时间比 GCC 晚,相比 GCC , Clang 的编译速度更快,错误提示更友好。

    GNU Make

    当项目的源文件数量很多,结构十分复杂时,仅仅使用编译器对项目进行编译,会是一件十分繁琐的事情,引用头文件目录,引入源文件,引入第三方静态库动态库都会十分的繁琐。

    GNU Make 能够基于前面提供的编译器,选择项目中合适的源文件来生成项目所需的中间目标文件和可执行文件。开发者通过编写一个名为 makefile 的文件来指导 GNU Make 处理编译。

    Autoconf | CMake

    Autoconfm4 宏处理的扩展包,通过它可以生成一个脚本,这个脚本能够自动生成编译用的配置文件。AutoconfAutomake 是一对。

    CMake 是一个开源的软件,开发者通过编写独立于平台和编译器的配置文件,来指导项目的编译过程。

    Autoconf 中涉及的概念比较多,生成脚本的步骤比较繁琐, CMake 在使用上更为简单。

    参考链接

    LLVM
    GCC,the GNU Compiler Collection
    GNU Make
    diff between gcc and g++
    Programming Languages Supported by GCC
    Clang
    CMake
    Autoconf

  • 相关阅读:
    [转]select any dictionary与select_catalog_role区别
    [转]Oracle DB 权限与角色
    About Secure Application Roles
    [转]Oracle DB 用户
    [转]Oracle DB 管理数据库存储结构
    lsnrctl工具之service
    [转]Oracle DB 配置Oracle Network环境
    [转]Oracle DB 性能视图和数据字典
    [转]Oracle DB 查看预警日志
    判断数据库启动时使用的参数文件类型的方法
  • 原文地址:https://www.cnblogs.com/tangyikejun/p/12078556.html
Copyright © 2011-2022 走看看