makefile进阶

2023-11-16

一、微观的C/C++编译执行过程

.c文件怎么变成可执行文件.exe ?

1、预处理: -E  宏替换,头文件展开,去打印

                     gcc  -E  hello.c  -o  hello.i

2、编译: -S    把  .i 文件编译成汇编代码文件  .i

                        gcc -S  hello.i -o   hello.s

3.汇编(Assemble):-c

汇编过程将上一步的汇编代码转换成机器码(machine code),这一步产生的文件叫做目标文件,是二进制格式。

                gcc -c  hello.s -o   hello.o

4.链接(Linking): -o

链接过程将多个目标文以及所需的库文件(.so等)链接成最终的可执行文件(executable file)

命令大致如下:  gcc   hello.o -o   hello

这就是我们要使用编译脚本Makefile的原因

 二、Makefile的编写:第一层

 1.例1

 

 

  2.例2

 

  三、Makefile的编写:第二层

 

  四、Makefile的编写:第三层

 

   五、Makefile的编写:第四层

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

makefile进阶 的相关文章

  • mac升级catalina后CoreFoundation.h not found的问题处理

    mac升级catalina之后问题贼多 原来跑的顺利的项目出了一堆问题 把这个问题的解决过程转发一下 供大家参考吧 https cloud tencent com developer article 1629899
  • (Ext基础篇) Ext表格控件

    Ext中的表格功能非常强大 包括排序 缓存 拖动 隐藏某一行 自动显示行号 列汇总 单元格编辑等实用功能 表格由类Ext grid GridPanel定义 继承自Panel 其xtype为Grid 在Ext中 表格控件Grid必须包含列定义
  • win10 docker部署tomcat、mysql、drlog

    一 安装Docker服务 1 1 下载安装docker desktop 我是win10系统 选择windows版本 1 2 启动docker desktop 1 3 安装Java 二 通过Docker部署Tomcat服务器 2 1 搜索to
  • C语言system函数使用

    函数原型 包含在头文件 stdlib h 中 int system const char command 函数功能 执行 dos windows系统 或 shell Linux Unix系统 命令 参数字符串command为命令名 另 在w
  • 牛顿迭代法原理讲解

    牛顿迭代法原理讲解 牛顿迭代法是用于求解等式方程的一种方法 类似于求解F x 0的根 牛顿迭代法求解的是近似根 这个想法准确来说来源于泰勒展开式 我们知道 有些时候 我们需要求解的表达式可能非常复杂 通过一般的方法 我们很难求出它的解 所以

随机推荐

  • linux 虚拟机不能启动不了系统,群晖VMM虚拟机安装Linux系统无法启动桌面的解决办法...

    去年群晖科技为DSM系统推出虚拟化套件 Virtual Machine Manager 可在NAS上直接安装各种虚拟机等 而Linux 虚拟机在蓝点网测试过程中则是发现存在远程桌面无响应问题 点击画面任何位置都无法进行操作 关于这个问题从网
  • 数据库中表数据备份

    目的 在所有的数据仓库类项目中几乎都会涉及到数据库中表数据备份的操作 主要是为了对一些结果数据进行备份 防止误操作 过程 一 背景 本次我们用的方法是通过在数据库中建立一个备份用户进行数据备份的操作 原因是现在的数据库一般是基于HDFS开发
  • 【html】【一个简单的用户登录页面代码】

    结果 代码
  • OpenCV python 轮廓(连通域)最小外接圆形

    OpenCV python 轮廓 连通域 最小外接圆形 原图 cc jpg import cv2 import numpy as np def main 1 导入图片 img src cv2 imread cc jpg 2 灰度化 二值化
  • ndk编译

    使用方法 直接到jni目录下 和androd mk文件放在一起 ndk build j8 B cp rf libs videolibtest libs 默认编译的是 armeabi 架构的 如果有或创建Application mk文件 则在
  • 微信小程序阻止用户返回上一页,并弹窗给用户确定是否要返回上一页

    在onload中调用微信的enableAlertBeforeUnload方法 在首次进入会自动监听当前的页面 在返回的时候会自动弹出弹窗阻止用户返回上一页 点击确定则返回上一页 取消则停留在当前页 onLoad function wx en
  • 3、Linux权限管理

    3 Linux权限管理 文章目录 3 Linux权限管理 3 1 Linux chgrp命令 修改文件和目录的所属组 3 2 Linux chown命令 修改文件和目录的所有者和所属组 3 3 Linux 权限位 3 4 Linux chm
  • 删除数据库的sql语句

    删除数据库的sql语句如何写 drop database 数据库名 删除数据库的 drop table 表名 删除表的 delete from 表名 where 条件 删除数据的 truncate table 表名 也是删除数据库的 但是他
  • Qt—事件的处理

    事件的处理 一个事件由一个特定的QEvent子 类来表示 但是有时一个事件又包含多个事件类型 比如鼠标事件又可以分为鼠标按下 双击和移动等多种操作 这些事件类型都由QEvent类的枚举型QEvent Type来表示 其中包含了一百多种事件类
  • librdkafka的使用和介绍

    librdkafka的使用介绍 librdkafka是kafka的c语言接口 下面简单的介绍一下其接口 1 rd kafka conf set设置全局配置 2 rd kafka topic conf set设置topic配置 3 rd ka
  • MySQL IP地址存储和转换

    存储 保存IP地址到数据库 建议使用整型 首先可以节省存储空间 例如保存IP地址 255 255 255 255 如果使用字符串形式的IP 那么需要VARCHAR 15 来存放 而使用整型的话 用二进制是111111111111111111
  • Oulipo

    点击打开链接 Problem Description The French author Georges Perec 1936 1982 once wrote a book La disparition without the letter
  • anaconda虚拟环境python升级_Anaconda的安装与虚拟环境建立

    电脑配置 Windows10 64位操作系统 一 Anaconda的介绍 Anaconda指的是一个开源的Python发行版本 其包含了conda Python等180多个科学包及其依赖项 因为包含了大量的科学包 Anaconda 的下载文
  • 【LTspice】006 实际电容 阻抗特性曲线

    目录 1 电路图 2 仿真条件 3 电容元件选型 及 寄生参数 4 仿真结果分析 1 电路图 我们可以利用仿真软件的AC分析功能绘制电容的阻抗特性曲线 如下 放置一电容和电压源 设置如下图所示 2 仿真条件 AC 1 电压源指定小信号交流分
  • mysql日期相减操作

    一 MySQL中两个DateTime字段相减 假定表名为tblName 两个DateTime字段名分别为beginDateTime endDateTime 以下是相关两个mysql日期字段相减的SQL语句 这种方式两字段跨天 月 年都无问题
  • Android Studio教程从入门到精通

    转自 http blog csdn net yanbober article details 45306483 目标 Android Studio新手 gt 下载安装配置 gt 零基础入门 gt 基本使用 gt 调试技能 gt 构建项目基础
  • Journal of Proteome Research

    文献名 Lipidomics reveals similar changes in serum phospholipid signatures of overweight and obese paediatric subjects 用脂质组
  • pytorch1.13安装

    pytorch1 13安装 个人参考 情况交代 安装流程 注意事项 显卡配置查看 创建环境 激活环境 安装对应的torch版本 检查 使用pip list 导入查看 卸载 下载gpu版本的 验证 把这个内核加到jupyter 完成 情况交代
  • 挂载mount问题“wrong fs type, bad option, bad superblock on ”的解决办法

    重装系统后挂载一般会出现如下问题 problem ivy ivy OptiPlex 380 source sudo mount 192 168 9 18 home deep dev env source mount wrong fs typ
  • makefile进阶

    一 微观的C C 编译执行过程 c文件怎么变成可执行文件 exe 1 预处理 E 宏替换 头文件展开 去打印 gcc E hello c o hello i 2 编译 S 把 i 文件编译成汇编代码文件 i gcc S hello i o