Makefile 入门(加减乘除实现)

准备

使用任意Linux发行版即可,本文使用WSL Ubuntu。

开始之前,需要安装必要的工具:

sudo apt install make g++

开始

1、新建一个工程文件夹src,然后新建以下文件:

src
├── Makefile
├── div.cpp
├── head.h
├── main.cpp
├── mul.cpp
├── plus.cpp
└── sub.cpp 0 directories, 7 files

2、main.cpp是测试程序的入口,调用写好的加减乘除方法:

# include "head.h"

int main()
{
printf("sum = %d\n", add(40,5));
printf("mul = %d\n", mul(40,5));
printf("sub = %d\n", sub(40,5));
printf("div = %f\n", div(40,5));
}

3、head.h 是头文件,其中需要写函数声明,以及其他需要使用的头文件

#include "stdio.h"

int add(int a, int b);
int sub(int a, int b);
int mul(int a, int b);
double div(int a, int b);

3、plus.cpp等四个方法如下所示:

//plus.cpp
#include "head.h" int add(int a, int b)
{
return a - b;
}
//mul.cpp
#include "head.h" int mul(int a, int b)
{
return a * b;
}
//div.cpp
#include "head.h" double div(int a, int b)
{
return a / b;
}
//sub.cpp
#include "head.h" int sub(int a, int b)
{
return a - b;
}

4、Makefile文件

CC = g++
CFlags = -c
ObjFiles = main.o plus.o sub.o mul.o div.o main: $(ObjFiles)
$(CC) $(ObjFiles) -o main
%.o: %.cpp head.h
$(CC) $(CFlags) $< -o $@ .PHONY:clean all
clean:
rm -f *.o main

详细的格式写法和定义等请参考该文章的后半部分:Makefile简单编写实例

//TODO: 详细makefile写法

生成

在src文件夹内运行make命令即可:

运行效果:

Makefile 入门(加减乘除实现)的更多相关文章

  1. vim+makefile入门编辑,编译,差错实例

    vim+makefile入门编辑,编译,差错实例 vim makefile 编译 编写代码,一般在vim中编辑完后,输入:wq,在命令行下输入g++ hello.cc -o hello ,出现问题,打 ...

  2. 30天自制操作系统(二)汇编语言学习与Makefile入门

    1 介绍文本编辑器 这部分可直接略过 2 继续开发 helloos.nas中核心程序之前的内容和启动区以外的内容先不讲了,因为还涉及到一些软盘方面的知识. 然后来讲的是helloos.nas这个文件 ...

  3. 挑战30天写操作系统-day2-汇编语言学习与Makefile入门

    1.介绍文本编辑器 这里,我们直接采用自己windows电脑自带的文本编辑器即可以完成制作要求 2.继续开发 下面先是对昨天使用的helloos.nas文件内容进行详细解释 ; hello-os ; ...

  4. Makefile 入门与基本语法 分类: C/C++ ubuntu 2015-05-18 11:16 466人阅读 评论(0) 收藏

    在我看来,学会写简单的Makefile,阅读较复杂的makefile,是每一个Linux程序员都必须拥有的基本素质.Makefile可以自动识别哪些源文件被更改过,需要重新编译,那些不需要.从而节省大 ...

  5. makefile入门-初步了解

    自己开始学习makefile是由于VScode配置工程文件,看别人的配置不是很懂,于是决定入门学习下makefile. 先来说说makefile是做什么用的:makefile可以实现工程的自动化编译, ...

  6. Makefile入门

    相信大家对makefile都不陌生,在Linux下编写程序基本都离不开makefile的编写,我们都知道多个.c文件经过编译器编译后得到多个.o文件,这些文件是互相独立的,但最终我们要得到一个可正常运 ...

  7. Makefile入门教程

    Makefile介绍 make是一个命令工具,它解释Makefile 中的指令(应该说是规则).在Makefile文件中描述了整个工程所有文件的编译顺序.编译规则.Makefile 有自己的书写格式. ...

  8. [ARM-LInux开发]linux设备驱动makefile入门解析

    以下内容仅作参考,能力有限,如有错误还请纠正.对于一个普通的linux设备驱动模块,以下是一个经典的makefile代码,使用下面这个makefile可以完成大部分驱动的编译,使用时只需要修改一下要编 ...

  9. Makefile入门1

    Linux中的编译脚本Makefile的讲解设计 概念 编译控制脚本(.c.h----->bin) Makefile最终要的是清晰编译链接的整个过程 Makefile的优化设计 工作原理 mak ...

随机推荐

  1. iOS团队代码规范

    iOS团队代码规范 工程之始可能需要的工具: 1.使用CocoaPods类库管理工具.CocoaPods安装和使用教程. 2.下载安装注释插件VVDocumenter-Xcode. 一.项目结构管理 ...

  2. 交换机基本原理与VRP基础及操作

    交换机基本原理与VRP基础及操作 目录 交换机基本原理与VRP基础及操作 一.数据链路层 1.数据链路层的位置 2.数据链路层的功能 二.以太网(Ethernet) 1.以太网的概念 2.MAC地址( ...

  3. C++职工管理系统

    目录 职工管理系统 一. 需求 二. 创建管理类 1.创建文件 2. 头文件实现 3. 源文件实现 三. 菜单功能 1. 添加成员函数 2. 功能实现 3. 测试菜单功能 四. 退出功能 1. 提供功 ...

  4. RHCSA阶段笔记

    命令终端字段含义介绍 [root@localhost ~]# 解释: root:当前登录系统用户名(root超级管理员) localhost :当前主机名 :当前用户所在目录( 为家目录) ,root ...

  5. 今天你花里胡哨了吗 --- 定制属于自己的linux ssh迎宾信息

    请开始你的表演 linux-oz6w:~ # cat << 'eof' > /etc/profile.d/ssh-login-info.sh #!/bin/sh # 输出一个图像 e ...

  6. MXNet源码分析 | Gluon接口分布式训练流程

    本文主要基于MXNet1.6.0版本,对Gluon接口的分布式训练过程进行简要分析. 众所周知,KVStore负责MXNet分布式训练过程中参数的同步,那么它究竟是如何应用在训练中的呢?下面我们将从G ...

  7. 实战 | 关于随手一点就发现XSS漏洞这件事

    起因 今天正在做一个项目时,需要找一个云接码平台接码去登录系统.当我随手从百度找了一个接码平台时,一个偶然的发现,有了今天这篇文章. 正文 当我进入这个接码平台随便找了个手机号,然后等了好几分钟都没啥 ...

  8. JDK动态代理为什么必须要基于接口?

    原创:微信公众号 码农参上,欢迎分享,转载请保留出处. 前几天的时候,交流群里的小伙伴抛出了一个问题,为什么JDK的动态代理一定要基于接口实现呢? 好的安排,其实要想弄懂这个问题还是需要一些关于代理和 ...

  9. jdk、jre、jvm分别是什么?有什么联系?

    JDK:是Java Development Kit的缩写,是Java的开发工具包,JDK是整个JAVA的核心.它提供了编译.运行Java程序所需的各种工具和资源.有了它,Java开发者就可以编译和运行 ...

  10. Spark学习记录

    SpringStrongGuo Hadoop与Spark Hadoop主要解决,海量数据的存储和海量数据的分析计算. Spark主要解决海量数据的分析计算. Spark运行模式 1)Local:运行在 ...