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. Python接口自动化测试_悠悠

    https://yuedu.baidu.com/ebook/585ab168302b3169a45177232f60ddccda38e695###  

  2. swoole错误“Uncaught Error: Class 'swoole_server' not found”的解决办法

    如果你在执行swoole对应文件时,报下面的错误, PHP Fatal error: Uncaught Error: Class 'swoole_server' not found in /mnt/w ...

  3. HTML5知识点笔记

    1.HTML是一种标记语言 2.HTML元素不区分大小写  //可以在xss绕过waf时使用 3.<code></code>为空元素标签 <code/>为自闭合标签 ...

  4. EMNLP 2017 | Sparse Communication for Distributed Gradient Descent

    通过将分布式随机梯度下降(SGD)中的稠密更新替换成稀疏更新可以显著提高训练速度.当大多数更新接近于0时,梯度更新会出现正偏差,因此我们将99%最小更新(绝对值)映射为零,然后使用该稀疏矩阵替换原来的 ...

  5. The POM for com.alibaba:druid:jar:1.2.6 is invalid, transitive dependencies (if any) will not be available

    开发环境 IDEA2020.3,  jdk1.8.0_231 问题描述 开发中引入了druid-spring-boot-starter最新版本1.2.6,项目install时的时候一直出现警告 The ...

  6. blender导入灰度图生成地形模型

    安装软件 在此处下载blender并安装. 添加平面 1.打开blender,右键删除初始的立方体. 2.shift+a选择平面添加进场景: 3.按下s键鼠标拖动调节平面大小确定后按下鼠标左键: 4. ...

  7. 深入理解Java类加载机制,再也不用死记硬背了

    谈谈"会"的三个层次 在<说透分布式事务>中,我举例里说明了会与会的差别.对一门语言的学习,这里谈谈我理解的"会"的三个层次: 第一层:了解这门语言 ...

  8. Android编译优化系列-kapt篇

    作者:字节跳动终端技术---王龙海 封光 兰军健 一.背景 本文是编译优化系列文章之 kapt 优化篇,后续还会有 build cache, kotlin, dex 优化等文章,敬请期待.本文由Cli ...

  9. 安装好的pycharm修改代码存储路径

    安装好pycharm的时候,第一次点开pycharm没有配置好,导致代码存放的路径是默认的.但是现在想把路径改成自己的路径怎么办? 首先,pycharm->file->settings-& ...

  10. SVG小图片格式显示(字符图标,可设置title属性)

    1.HTML + Font 方式: 修改图标颜色只需修改字体颜色,修改图片大小只需修改字体大小. 关于字体图片,我们可以自己制作,也可以从网上下载 阿里巴巴矢量图库. 在线图标字体库.Icomoon. ...