makefile 学习记录(一)简单的两个C文件编译
实现一个简单的两个c文件的编译
# makefile文件 方法一
CC = gcc #编译器的型号.PHONY: all #伪所址 不管有没有all 都会执行
all: hello.c tool.o #$(CC) hello.c tool.o -o all # 生成 all.o文件
tool.o:tool.c$(CC) -c tool.c
clean: #清除文件rm *.o all
CC = gcc #编译器的型号
RM = rm -rf #删除命令## 目标文件 方法二
TARGET := all## source file path
SRC_PATH := .## get all source files
SRCS = $(wildcard $(SRC_PATH)/*.c )## all .o based on all .c
OBJS := $(SRCS:.c=.o)## used headers file path
INCLUDE_PATH := .## get all include path
CFLAGS += $(foreach dir, $(INCLUDE_PATH), -I$(dir))
.PHONY: all #伪所址 不管有没有all 都会执行$(TARGET): @echo $(SRCS)$(CC) -c $(CFLAGS) $(SRCS)$(CC) $(CFLAGS) -o $(TARGET) $(OBJS) # $(LDFLAGS)$(RM) $(OBJS)clean: #清除文件$(RM) *.o $(TARGET)
//hello.c 文件
#include <stdio.h>
#include "tool.h"int main(int argc,char * argv[])
{ helloData2.intData2 = 1;helloData2.intHelloCount2 = 2; helloData hello ;hello.intHelloCount = 1 ;hello.intData = 2 ; helloData hello7 = {.intHelloCount = 1 ,.intData = 2 ,} ;struct helloData2_S hello2;hello2.intHelloCount2 = 1 ;hello2.intData2 = 2 ; struct student_st s2 = {.name = "YunYun",.c = 'B',.score = 92,};show_student(&s2);struct student_st stus[2] =
{{ .name = "YUN2",.c = 'D',.score = 94,},{ .name = "YUN3",.c = 'E',.score = 100,.name = "Xxx"},
};show_student(&stus[1]);//show_student(&stus[2]);int intData;intData = 456;int arr[] = {1,2,3,4,20};int ret =tool(arr ,5);printf("%d \n", intData); printf("%d \n", ret );printf("%d \n", hello.intHelloCount);return 0; }
//tool.c 文件
#include <stdio.h>
#include "tool.h"int tool(int arr[],int n)
{int m = arr[0];int i;for(i=0; i<n; i++){if(arr[i] > m){m=arr[i]; }} return m;
}void show_student(struct student_st *stu)
{printf("c = %c, score = %d, name = %s\n", stu->c, stu->score, stu->name);
}
//tool.h文件
#ifndef _TOOL_H
#define _TOOL_H#include <stdio.h>typedef struct helloData_S
{int intHelloCount ;int intData;
} helloData;struct helloData2_S
{int intHelloCount2 ;int intData2;
} helloData2 ;struct student_st
{char c;int score;const char *name;
};int tool(int arr[],int n) ;
void show_student(struct student_st *stu);
#endif
编译结果:
makefile 学习记录(一)简单的两个C文件编译相关推荐
- Android Studio学习记录之简单的页面切换及宫格菜单
Android Studio学习记录之简单的页面切换及宫格菜单 之前上课听老师讲的一些东西自己其实并没有消化,今天把不懂的都去网上搜了一下,有了一种恍然大悟的感觉,包括很多方方面面的东西.有些东西听说 ...
- Java学习记录之简单的图书管理系统(完善中)
电子书管理系统 功能划分 最核心的功能 提供图书管理的服务 添加图书 查询 检索所有的图书 按已知检索图书信息 图书的删除 图书信息的更新 用户 用户的类型 管理员:图书的添加.更新.删除操作 普通用 ...
- 【ANSYS Sherlock学习记录】Part 1、导入ODB文件
Ansys Sherlock学习记录 最近开始学习ANSYS Sherlock 学习资料按照官方的用户指南进行学习 Chapter 1:Sherlock 入门 Chapter 2:项目工作流程指南 C ...
- VBA简单实现两个Excel文件的比较方法
到财务走了一圈,正好看到一位同事正在对两个Excel文件进行比较.两个文件的内容大致如此(列出部分列名): 主贷身份证 主贷人 贷款余额 440602**** 李*瑜 ¥35,000 360102** ...
- 顶层Makefile学习记录
make xxx_defconfig 的过程 make am64x_evm_r5_defconfig O=./testbuild V=1 make -C /home/wzx/ti-processor- ...
- Unity学习笔记--超简单:两个游戏对象直接用线连接(UI和世界坐标下均可)
目录 UI用 效果图 UI代码示例 挂载示例 世界坐标用 挂载示例 效果图 世界坐标代码示例 我们分两种情况,一种是UI上连线,一种是世界坐标下连线. UI用 效果图 UI代码示例 public cl ...
- python 学习记录-用python从硬盘中读写文件 Day21
(一)文件操作 文件操作步骤: 第一步: 打开文件 f = open(文件名, 操作模式, encoding=文件编码) 第二步: 读写文件 f.read() f.write() 第三步: 关闭文件 ...
- makefile学习(转载)
该篇文章为转载,是对原作者系列文章的总汇加上标注. 支持原创,请移步陈浩大神博客: http://blog.csdn.net/haoel/article/details/2886 makefile很重 ...
- linux下Makefile学习--注释很好
什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都 为你做了这个工作,但我觉得要作一个好的和 professional的程序员,makefile还 ...
最新文章
- 骂战之后,天才王垠或将加入华为,赵海平怒离职,加入字节跳动!
- Angular路由--基本用法
- 《把时间当作朋友》读书笔记(十四)--积累(二)
- jQuery.validate.js API
- 5部适合学英语的动画电影,快和孩子一起看!
- 【dfs】简单游戏(jzoj 2121)
- JAVA解析html文档,替换img图片路径成base64编码,并将文章存入数据库
- 《Python Cookbook 3rd》笔记(5.6):字符串的 I/O 操作
- mysql如何管理空间_管理空间的mysql数据库
- ext2fsd打开提示硬盘格式化_苹果Macbook电脑安装win10系统教程及错误提示信息解决方法...
- filter过滤后重新添加_Kibana基本使用---使用Flight Dashboard过滤数据
- 顶尖电子秤ls6恢复出厂_顶尖电子秤常见故障处理方法new
- SAP-MM-PA精解分析系列之供应商(02)-账户组解析
- 计算机电源 通电,笔记本电脑开不了机,通电后电源指示灯不亮
- Aeraki Mesh正式成为CNCF沙箱项目,腾讯云携伙伴加速服务网格成熟商用
- 如何在线制作二维码?学校通知二维码的3种制作方法
- SAP 未审批的采购订单(PO)提交到OA去审批,最后OA审批结果回写到SAP。
- NOIP 2016 PJ T4 魔法阵
- 上传图片计算机没有桌面,为什么我的电脑不能上传任何图片和文件?各位 – 手机爱问...
- OpenKruise 成为 CNCF 孵化项目:为大规模采用 Kubernetes 打开大门
热门文章
- Microsoft Office 2010安装失败
- 珍宝鸭的力扣练习(7):分治法题目合集
- mib文件导入mysql数据库_mysql之 sysbench1.0.3 安装与系统压力测试
- iOS入门攻略 01篇【电脑基本知识+快捷键+终端命令+Xcode+C语言数据类型】
- 用 java 生成 TexturePacker 的工程文件
- QQ服务器拒绝了你发送离线文件暂时解决办法
- QQ登不上出现蓝屏代码0X000000EA,电脑蓝屏的解决方法
- photoshop--PS第一步工具箱2
- 会议整理 | 2023年度国内外图像图形学术会议
- Python 学习笔记 列表 排序 xxx XXX