make

make

背景

gcc 在编译一个包含多个源文件的工程时, gcc需要将每一个源文件都编译一遍,任何再链接起来形成一个可执行文件。实际上,用户很少对所有源文件都进行修改,这就会造成资源和时间的不必要浪费。make管理工具就是来解决这个问题的

make的机制

make机制运行环境需要i一个命令行程序make和一个文本文件Makefile

make是一个解释Makefile中指令的命令工具

make的退出码

  • 表示成功执行
  • 如果make运行时遇到任何错误, 返回1
  • 如果使用了make的 “-q” 选项,并且make使得一些目标不需要更新,那么返回2

make的参数

make

make初使用

main.c

#include

int main()
{
    char c;
    char str[20];
    enter_string(str);
    printf("The str");
    /*调用字符串输入函数*/
    printf("The delete a tring is ");
    scanf("%c", &c);
    delete_string(str, c);
    /*调用字符串除函数*/
    printf_string(str);
    return 0;
}

func1.c

#include
int enter_string(char str[20])
{
    printf("Input the setting: ");
    gets(str);
    return 0;
}

func2.c

int delete_string(char str[], char ch)
{
    int i, j;
    for(int i = j = 0; str[i] != '\0'; i ++)
    {
         if (str[i] != ch)
            str[j ++] = str[i];
    }
    str[j] = '\0';
    return 0;
}

func3.c

#include <stdio.h>
int printf_string(char str[])
{
    printf("Result: %s\n",str);
    return 0;
}

</stdio.h>

Makefile

all: main.c func1.c func2.c func3.c
    gcc main.c func1.c func2.c func3.c -o all           #&#x5FC5;&#x987B;&#x7F29;&#x8FDB;

执行结果

make

Original: https://www.cnblogs.com/wojiuyishui/p/16663775.html
Author: 我就一水
Title: make

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/578654/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • .Net MVC实现全局异常捕捉返回通用异常页面的一种方式

    阅文时长 | 0.54分钟字数统计 | 876字符主要内容 | 1、引言&背景 2、部分通用设计代码 3、声明与参考资料『.Net MVC实现全局异常捕捉返回通用异常页面的…

    Linux 2023年6月13日
    0107
  • 性能优化,实践浅谈

    当经历了无数的日日夜夜,朝九晚九,攻克了无数难关,终于将系统预定功能开发完成,通过测试,部署上线后。你是否会感觉志得意满,到达了人生巅峰,高唱无敌是多么寂寞。 现实情况是,如果你这…

    Linux 2023年6月13日
    0126
  • 【论文笔记】(2019,PGD)Towards Deep Learning Models Resistant to Adversarial Attacks

    摘要 作者从鲁棒优化(robust optimization)的角度研究了神经网络的对抗鲁棒性(adversarial robustness)。基于鞍点公式(min-max)本文提…

    Linux 2023年6月7日
    0102
  • 【小记】Linux find 配合 rm 命令安全批量删除文件

    可以先运行: find . -name "*.log" 确认通配符匹配到的文件是你想删除的文件。再命令执行删除: find . -name "*.lo…

    Linux 2023年6月13日
    0100
  • CentOS通过Xshell连接密码错误

    环境:CentOS6.7虚拟机,Xshell7 问题说明:通过Xshell7进行远程登录时,一直提示密码错误。 问题分析排查过程: 1、开始以为是密码错了,经过SVN版本检查等未发…

    Linux 2023年5月28日
    0112
  • python获取Windows硬件特征信息

    1.python pip安装WMI 并用pyinstaller编译出device_chk.exe 参考内容:https://blog.csdn.net/fengmm521/arti…

    Linux 2023年6月7日
    097
  • 十二、启动流程

    启动流程介绍 现代计算机系统启动是硬件与软件复杂组合。从定义的端点开始,到拥有登录提示符的运行中系统,需要大量的硬件和软件配合工作。以下列表从较高层面概述了启动系统时所涉及的任务。…

    Linux 2023年6月7日
    0105
  • 吴军《浪潮之巅》阅读随笔(二)信息产业的规律性

    在这本书上册的最后一章《信息产业的规律性》中,有几个问题让我很感兴趣。 在信息科技某个领域发展成熟之后,一般在全球容不下三个以上的主要竞争者,这个行业一定有一个老大、是这个行业的主…

    Linux 2023年6月14日
    0138
  • 操作系统实现-loader

    博客网址:www.shicoder.top微信:18223081347欢迎加群聊天 :452380935 大家好呀,终于我们到了操作系统的loader部分了,loader也是操作系…

    Linux 2023年6月13日
    075
  • NO.1 通讯录管理系统+源代码(C++)

    功能描述:显示简单的菜单,供用户选择操作 实现步骤:直接cout输出 功能描述:根据用户不同的操作代码选择,进入不同的功能,我们使用switch分支结构进行搭建 实现步骤:用whi…

    Linux 2023年6月7日
    0189
  • 关于如何在Idea下进行多子项目及引用内部子项目情况下打包项目的方法

    近期在开发Java的时候遇到了如下的打包上的问题 需要将一个工程下面的子工程分别打包 有的子工程还包含了另一个子工程 在这种情况下打包会出现找不到子模块的情况。 JDK:1.8 开…

    Linux 2023年6月14日
    0100
  • 【转】 一条 SQL 的执行过程详解

    MySQL 体系架构 – 连接池组件 1、负责与客户端的通信,是半双工模式,这就意味着某一固定时刻只能由客户端向服务器请求或者服务器向客户端发送数据,而不能同时进行。 …

    Linux 2023年6月13日
    0133
  • redis订阅关闭异常解决

    redis订阅关闭异常解决 应用程序模块订阅redis运行一段时间出现一直重连Redis服务,日志如下: 2019-04-28 10:06:17,551 ERROR org.spr…

    Linux 2023年5月28日
    0115
  • Linux高可用之Keepalived

    注意: 各节点时间必须同步 确保各节点的用于集群服务的接口支持MULTICAST通信(组播); 安装 从CentOS 6.4开始keepalived随系统base仓库提供,可以使用…

    Linux 2023年5月27日
    0141
  • linux用户组管理

    一、简介 1、每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理,不同Linux系统对用户组的规定有所不同,如:Linux下在创建用户时,不指定用户组名,则会同时…

    Linux 2023年5月27日
    0126
  • Mysql Date操作

    根据format字符串格式化date值。 下列修饰符可以被用在format字符串中: %W 星期名字(Sunday……Saturday) %D 有英语前缀的月份的日期(1s…

    Linux 2023年6月7日
    072
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球