首页 > 编程语言 >C++编译全过程

C++编译全过程

时间:2024-01-20 20:12:48浏览次数:31  
标签:文件 C++ 编译 全过程 链接 out

1.源文件 .cpp
2.预处理:将所有的#include头文件以及宏定义替换成其真正的内容(删除所有的注释、宏扩展、文件包含) .i
3.汇编:转换为汇编语言 .s
4.编译:转换为二进制机器码 .o(目标文件)
5.链接:链接过程将多个目标文件以及所需的库文件(.so等)链接成最终的可执行文件(executable file) .out
实际上运行代码

gcc hello.c # 编译
./a.out # 执行

参考网址:C语言编译过程详解

标签:文件,C++,编译,全过程,链接,out
From: https://www.cnblogs.com/fly-smart/p/17977067

相关文章

  • 关于C++符号表
    符号表是程序/单元中“符号”的列表。符号通常是变量或函数的名称。符号表可用于确定变量或函数在内存中的位置。简而言之,SymbolTable是分配给函数&变量的名称与其在内存中的地址的映射,包括类型、范围和大小等元数据。最终由编译器使用。通常,C或C++编译器将单个源文件编译......
  • 第九天:软件编译安装过程
    一、利用编译工具,通常只需要三个大的步骤./configure(1)通过选项传递参数,指定安装路径、启用特性等;执行时会参考用户的指定以及Makefile.in文件生成Makefile(2)检查依赖到的外部环境,如依赖的软件包make根据Makefile文件,会检测依赖的环境,进行构建应用程序makeinstall复......
  • C++模板例子
    title:"C++模板例子"date:2023-11-02T01:05:25+08:00tags:["C++"]categories:[]draft:falsetoc:true#include<vector>#include<type_traits>usingnamespacestd;classAA{};classBB{};classTest{public:templ......
  • 【C++入门到精通】 C++入门—命名空间
    前言    前面我们学习了C语言,并且知道了C语言的基础语法与用途。接下来一段时间我们会再来学习一下基于C语言并且根据C语言改造的一门新的语言—C++     硕硕相信只要各位大佬们跟着我的博客看下去,肯定能有不少的收获。二话不说咱们要开车了,坐稳扶好呦C++的发展历......
  • VC 编译crt不同版本,Debug/Release混用问题
    extern"C" int__CRTDECL_imp__swprintf( _Pre_notnull__Post_z_wchar_t*const_Buffer, _In_size_tconst_BufferCount, _In_z__Printf_format_string_wchar_tconst*const_Format, ...){ int_Re......
  • OpenWrt在WSL编译报错
    OpenWrt在WSL编译报错执行以下指令时:./scripts/feedsupdate-a具体报错如下:Builddependency:OpenWrtcanonlybebuiltonacase-sensitivefilesystemPrerequisitecheckfailed.UseFORCE=1tooverride.make:***[/mnt/d/openwrt/include/toplevel.mk:182:/mnt......
  • C++常见面试题整理
    1.CPP编译链接过程1.CPP编译链接过程预处理处理以#开头的命令,纯文本替换,类型不安全#pragmalib和#pragmalink除外,#pragmalib用于指定要链接的库,#pragmalink用于指定程序入口(默认入口是main函数,但可以通过该命令修改)都是在链接阶段进行处理编译词法分析,语法分析,......
  • C++11原子变量:线程安全、无锁操作的实例解析
     在C++11中,原子变量(std::atomic)提供了一种线程安全的方式来操作共享变量。下面是一个简单的例子,演示了C++11原子变量的用法。#include<iostream>#include<atomic>#include<thread>std::atomic<int>counter(0);//声明一个原子整数变量voidincrementCounter(int......
  • C++ opencv计算两个cv::Rect的重复面积
    C++ opencv计算两个cv::Rect的重复面积  #include<opencv2/opencv.hpp>#include<iostream>intmain(){//创建两个矩形cv::Rectrect1(10,10,50,50);//(x,y,width,height)cv::Rectrect2(30,30,50,50);//检查两个矩形是否重叠......
  • c++函数默认参数及占位参数
    一.函数默认参数在c++中,函数形参列表中的形参是可以有默认值的语法:如果我们自己传入数据,就用自己的数据,如果没有,就用默认值注意:1.如果某个位置参数有默认值,那么从这个位置往后,从左往右,必须都要有默认值2.如果函数声明有默认值,函数实现的时候就不能有默认参数。(声明和实现只......