Makefile 入门(加减乘除实现)
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 入门(加减乘除实现)的更多相关文章
- vim+makefile入门编辑,编译,差错实例
vim+makefile入门编辑,编译,差错实例 vim makefile 编译 编写代码,一般在vim中编辑完后,输入:wq,在命令行下输入g++ hello.cc -o hello ,出现问题,打 ...
- 30天自制操作系统(二)汇编语言学习与Makefile入门
1 介绍文本编辑器 这部分可直接略过 2 继续开发 helloos.nas中核心程序之前的内容和启动区以外的内容先不讲了,因为还涉及到一些软盘方面的知识. 然后来讲的是helloos.nas这个文件 ...
- 挑战30天写操作系统-day2-汇编语言学习与Makefile入门
1.介绍文本编辑器 这里,我们直接采用自己windows电脑自带的文本编辑器即可以完成制作要求 2.继续开发 下面先是对昨天使用的helloos.nas文件内容进行详细解释 ; hello-os ; ...
- Makefile 入门与基本语法 分类: C/C++ ubuntu 2015-05-18 11:16 466人阅读 评论(0) 收藏
在我看来,学会写简单的Makefile,阅读较复杂的makefile,是每一个Linux程序员都必须拥有的基本素质.Makefile可以自动识别哪些源文件被更改过,需要重新编译,那些不需要.从而节省大 ...
- makefile入门-初步了解
自己开始学习makefile是由于VScode配置工程文件,看别人的配置不是很懂,于是决定入门学习下makefile. 先来说说makefile是做什么用的:makefile可以实现工程的自动化编译, ...
- Makefile入门
相信大家对makefile都不陌生,在Linux下编写程序基本都离不开makefile的编写,我们都知道多个.c文件经过编译器编译后得到多个.o文件,这些文件是互相独立的,但最终我们要得到一个可正常运 ...
- Makefile入门教程
Makefile介绍 make是一个命令工具,它解释Makefile 中的指令(应该说是规则).在Makefile文件中描述了整个工程所有文件的编译顺序.编译规则.Makefile 有自己的书写格式. ...
- [ARM-LInux开发]linux设备驱动makefile入门解析
以下内容仅作参考,能力有限,如有错误还请纠正.对于一个普通的linux设备驱动模块,以下是一个经典的makefile代码,使用下面这个makefile可以完成大部分驱动的编译,使用时只需要修改一下要编 ...
- Makefile入门1
Linux中的编译脚本Makefile的讲解设计 概念 编译控制脚本(.c.h----->bin) Makefile最终要的是清晰编译链接的整个过程 Makefile的优化设计 工作原理 mak ...
随机推荐
- 关于synchronized(this)中this指的是什么意思
public class SynchronizedDEmo { public static void main(String[] args) { TestThread tt = new TestThr ...
- Python--列表简介
Python--列表简介 目录 Python--列表简介 一.列表 1. 访问列表元素 2. 索引从0而不是1开始 3. 使用列表中的各个值 二.修改.添加和删除元素 1. 修改列表元素 2. 在列表 ...
- Python篇函数总结【输出函数】
1.raw_input("\n\nPress the enter key to exit.") 以上代码中 ,"\n\n"在结果输出前会输出两个新的空行.一旦用 ...
- Springboot原理
1. SpringBoot特点 一个starter导入所有 依赖管理 父项目做依赖管理:声明了所需依赖的版本号 依赖管理 <parent> <groupId>org.sprin ...
- centos安装MySQL问题
使用sudo yum install mysql-server出现没有可用软件包 mysql-server. 先 执行 wget http://repo.mysql.com/mysql-communi ...
- 3U VPX i7 刀片计算机
产品概述 该产品是一款基于第三代Intel i7双核四线程的高性能3U VPX刀片式计算机.产品提供了多个高速PCIe总线接口,其中3个x4 PCIe 3.0接口,1个x4 PCIe 2.0接口.x4 ...
- 【流行前沿】联邦学习 Partial Model Averaging in Federated Learning: Performance Guarantees and Benefits
Sunwoo Lee, , Anit Kumar Sahu, Chaoyang He, and Salman Avestimehr. "Partial Model Averaging in ...
- php异步:在php中使用fsockopen curl实现类似异步处理的功能方法
PHP从主流来看,是一门面向过程的语言,它的最大缺点就是无法实现多线程管理,其程序的执行都是从头到尾,按照逻辑一路执行下来,不可能出现分支,这一点是限制php在主流程序语言中往更高级的语言发展的原因之 ...
- Golang Sync.WaitGroup 使用及原理
Golang Sync.WaitGroup 使用及原理 使用 func main() { var wg sync.WaitGroup for i := 0; i < 10; i++ { wg.A ...
- zabbix密码复杂度有效期安全增强,符合三级等保要求。
一.关于三级等保要求 1.zabbix默认没有设置密码复杂度功能,密码有效期功能. 2.zabbix具备失败处理功能,但是没有页面手动调试,需要修改源代码. 3.zabbix具备超时退出功能. 二.整 ...