C++编译系统简介

发布于:2024-10-24 编辑:匿名 来源:网络

前言自从接触C++以来,在项目中经常会接触到CMake进行编译构建,但对其缺乏系统的了解,遇到问题就陷入盲目。我对C++编译系统是如何发展的,为什么要使用CMake,它是如何工作的非常感兴趣,所以我想系统地学习它。

我编写了这篇文章作为入门指南。 GCC编译过程 GCC,全称GNU Compiler Collection(GNU编译器套件),是GNU项目开发的编译软件。

它可以编译多种编程语言,包括C、C++、Objective-C、Fortran、Ada等。GCC编译流程图引用自: int main() { printf("Hello World!\ n”); return 0;} 预处理:通过 gcc -E main.c 命令可以看到预处理结果编译:通过 gcc -S mian.c 命令可以生成汇编文件main.s。

汇编:可以通过 gcc -c main.c 命令生成文件 main.o。链接:通过gcc main.o编译工具链可以生成a.out可执行文件。

编译工具链(Toolchain)是指用于将源代码转换为可执行文件或库的一组工具和程序。典型的编译工具链包括编译器、汇编器、链接器、库和调试器等组件。

Windows平台主要使用微软提供的工具链——MSVC。 Linux平台主要是GCC。

MacOS平台主要使用Clang和LLVM。随着项目越来越多,源代码文件增加,编译配置项根据场景越来越复杂(例如,Debug模式和Release模式下编译参数不同),构建系统也变得越来越复杂。

还是需要直接调用这些命令的时候会很复杂。我们需要编写大量复杂的命令行来完成一个复杂项目的编译。

基于这样的背景,我们提出了构建系统。 Linux/Unix上最古老的构建系统是make工具,与它一起工作的是Makefile配置文件。

Make是一个命令行工具,Makefiles配置文件指定了项目中的源代码、编译规则逻辑等信息。执行make时,会读取Makefile配置文件,生成GCC相关的调用命令行,然后调用GCC相关的命令行工具进行编译构建。

引用图片:它是C++中广泛使用的开源构建系统工具,支持多种编译器和平台。它通过生成本机构建系统(例如 Makefile、Visual Studio 项目文件等)来实现跨平台构建。

包管理器的早期 在 C++ 的早期,开发人员主要依赖于手动管理库和依赖项。这通常涉及下载源代码或预编译的二进制文件,然后将它们集成到项目中。

这种方式虽然灵活,但容易出错且难以维护。 Autotools 和 CMake 随着项目规模和复杂性的增长,Autotools 和 CMake 等构建系统变得流行。

这些工具帮助开发人员自动化构建过程,但它们不是包管理器。它们主要解决构建和配置问题,而不是依赖管理。

pkg-configpkg-config 是一个管理编译和链接参数的工具,广泛用于 Unix 系统。虽然简化了库的使用,但仍然需要手动安装和管理库。

ConanConan 是一个现代的跨平台 C++ 包管理器,旨在解决依赖管理问题。它支持多种构建系统(例如CMake、Autotools、MSBuild等),并且可以与CI/CD管道集成。

Conan 提供了一个中央存储库(Conan Center),开发人员可以在其中发布和查找包。 vcpkgvcpkg 是 Microsoft 开发的 C++ 包管理器,专注于简化库获取和集成。

它专为 Windows 平台设计,但也支持 Linux 和 macOS。 vcpkg 提供了一个中央存储库,用户可以在其中轻松安装和管理库 HunterHunter 是另一个基于 CMake 的 C++ 包管理器。

它通过 CMake 的外部项目功能管理依赖项,适用于已使用 CMake 作为构建系统的项目。 BuckarooBuckaroo 是一个基于 Buck 构建系统的 C++ 包管理器。

它旨在提供快速、可重复的构建并支持跨平台开发 CPMCPM 是一个基于 CMake 的轻量级包管理器,它使用 CMake 的 FetchContent 模块来下载和管理依赖项。它适合希望最小化外部依赖的项目。

C++编译系统的演变总结。本文从最早的手动管理依赖关系开始介绍C++编译系统。

随着项目复杂性的增加,它已经演变成针对不同平台的本地构建系统。面对一致性和可维护性的问题,它发展成了一个跨界的系统。

它是平台构建系统的工具。后来开发了包管理器来满足代码仓库依赖管理的需求。

罗马不是一天建成的。 C++编译系统也随着软件工程的发展而逐渐演变。

我们可以根据不同的业务需求选择相应的工具。通过了解编译系统的开发,可以更深入的了解自己项目的编译构建问题,从而提高自己的项目工程组织能力,提高效率。

C++编译系统简介

站长声明

版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

标签:

相关文章

  • mCube(硅科技)交付第5亿个加速计

    mCube(硅科技)交付第5亿个加速计

    单芯片MEMS技术加速移动物联网发展加州圣何塞 - 2019年11月16日 – mCube(小尺寸、低功耗供应商mCube) MEMS运动传感器(芯科科技)今日正式宣布,其业界领先的加速度计产品累计出货量已突破5亿颗。 在物联网时代,几乎所有移动物体都会用到运动传感器。 Melvin Bright在最近

    06-06

  • 专访Prises创始人蒋文凯:做一名精准的环保侦察员 -看新动力第104号

    专访Prises创始人蒋文凯:做一名精准的环保侦察员 -看新动力第104号

    2017年,习近平总书记在中央财经委员会第九次会议上首次强调,“碳达峰”和“碳中和”已纳入总体布局生态文明建设,为环保产业发展树立新目标,气体传感器作为将气体信息转化为相应电信号的电子元件,已逐渐取代质谱、光谱、气体等传统气体检测方法。 色谱法、质谱法、光谱法

    06-18

  • 码观|源码吴健:重估制造业价值

    码观|源码吴健:重估制造业价值

    代码查看 |源代码吴健:制造业价值重估 2020年9月29日,由中国信息通信研究院、工业互联网产业联盟(简称:工业互联网产业联盟)联合主办的“我为企业做实事”供需对接活动《联盟/AII》)会议(北京第一站)在线上成功举行。 会上,源码资本合伙人吴健做了题为“《工业互联网

    06-17

  • 百亿黄河母基金落地山东济南

    百亿黄河母基金落地山东济南

    投资界(ID:pedaily)消息,2月21日,黄河流域生态保护与高质量发展母基金(简称“黄河母基金”) “基金中的基金”在济南成功启动,新旧动能转换。 该区(简称“首发区”)的注册落地,将进一步集聚资本市场多元化力量,推动黄河流域生态保护和高质量发展,为首发区转型注入

    06-17

  • 去柏林旅行,我们看到了真正能改变我们生活方式的产品

    去柏林旅行,我们看到了真正能改变我们生活方式的产品

    世界上总有一些巧合让人感到惊奇。 当我千里迢迢飞到柏林庆祝IFA 99岁生日时,突然发现,恰好是ifanr的前三个字母。 更巧合的是,两人有着相同的兴趣——消费电子。 只是IFA以展览的形式存在,一次满足世界一个问题。 该展会诞生于2001年,爱因斯坦曾为其致开幕辞,是全球规模

    06-21

  • “简单心理学”完成2亿元B轮融资,由沙特阿美基金

    “简单心理学”完成2亿元B轮融资,由沙特阿美基金

    投资社区(ID:pedaily)领投 12月9日消息,近日,简单心理学宣布完成2亿元B轮融资。 本轮融资由沙特阿拉伯阿美旗下多元化风险投资基金Prosperity7 Ventures(P7)领投。 老股东长岭资本增持,恩颐资本紧随其后。 此前,简单心理学曾获得华创资本天使轮和A轮投资。 简单心理是

    06-17

  • 年销百亿备菜的“硬核玩家”:Salia

    年销百亿备菜的“硬核玩家”:Salia

    曾经有消费者做了一个“算盘”,如果在Salia点15道菜,9分钟内就能全部上桌。 如果这种事发生在中餐馆,大家难免会浮想联翩,直接想到预先准备好的菜肴以及其中的种种不好的地方。 前不久,学校食堂引入预制菜品引发热议;此前,多家中国食品连锁品牌也卷入了“烹饪套件”的争

    06-18

  • 一诺电子完成B轮融资,亿达资本领投

    一诺电子完成B轮融资,亿达资本领投

    据投资界2月21日消息,烟台一诺电子材料股份有限公司(以下简称:一诺电子)完成B轮融资。 本轮投资由亿达资本领投,资金主要用于公司产业链深度布局和产能建设。 一诺电子成立于今年9月。 主要从事银基键合线、键合金线、键合铜线、铝线、焊锡线、蒸镀及靶材的研发和制造。

    06-17

  • 超260亿元产业基金落地深圳罗湖

    超260亿元产业基金落地深圳罗湖

    投资界-解码LP消息,2月8日上午,兔年“深圳创投日”首站来到罗湖。 活动现场,泰国正大集团现代物流产业基金、五矿金通股权投资基金、未来航天医药产业基金、同创伟业美元基金、鲲鹏专项基金、博悦资本全球新材料基金等6只产业基金签约并落地涵盖智慧物流、智能制造、生物医

    06-17

  • 美肤科技获数千万元A轮融资,长江资本领投

    美肤科技获数千万元A轮融资,长江资本领投

    投资界(ID:pedaily)6月3日消息,据硬氪报道,山东美肤科技股份有限公司(以下简称“山东美肤”)美肤科技完成数千万元A轮融资,长江资本领投,义柏资本长期独家投资。 本轮融资将用于工厂建设、研发投入和客户拓展。 “美氟科技”是一家专业从事高性能氟材料生产、销售和研

    06-18

  • 「庆春半导体」完成数亿元Pre-B轮融资,两年融资近10亿

    「庆春半导体」完成数亿元Pre-B轮融资,两年融资近10亿

    投资界(ID:pedaily)12月28日消息,近日,庆春半导体宣布完成数百轮融资完成数百万元Pre-B轮融资,本轮融资由美团龙珠领投,老股东芙蓉投资领投。 蔚来资本、鸿福资产、泽森资本持续投资。 这是庆春半导体继今年4月完成数亿元A+轮融资后的又一融资进展。 本次融资将用于进一

    06-18

  • 6亿,辽宁盛京人才发展创业投资基金发起

    6亿,辽宁盛京人才发展创业投资基金发起

    投资界(ID:pedaily)消息,在市委组织部的组织协调下,在省市政府引导资金的大力支持下, 8月9日,由沉阳经济开发区(中德园区)管委会发起设立的辽宁盛景人才发展创业投资基金,由基金管理人辽宁合盛中德产业投资基金管理人中心(有限合伙)在沉阳市经济开发区(中德园区)

    06-18