实现一个简单的两个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文件编译相关推荐

  1. Android Studio学习记录之简单的页面切换及宫格菜单

    Android Studio学习记录之简单的页面切换及宫格菜单 之前上课听老师讲的一些东西自己其实并没有消化,今天把不懂的都去网上搜了一下,有了一种恍然大悟的感觉,包括很多方方面面的东西.有些东西听说 ...

  2. Java学习记录之简单的图书管理系统(完善中)

    电子书管理系统 功能划分 最核心的功能 提供图书管理的服务 添加图书 查询 检索所有的图书 按已知检索图书信息 图书的删除 图书信息的更新 用户 用户的类型 管理员:图书的添加.更新.删除操作 普通用 ...

  3. 【ANSYS Sherlock学习记录】Part 1、导入ODB文件

    Ansys Sherlock学习记录 最近开始学习ANSYS Sherlock 学习资料按照官方的用户指南进行学习 Chapter 1:Sherlock 入门 Chapter 2:项目工作流程指南 C ...

  4. VBA简单实现两个Excel文件的比较方法

    到财务走了一圈,正好看到一位同事正在对两个Excel文件进行比较.两个文件的内容大致如此(列出部分列名): 主贷身份证 主贷人 贷款余额 440602**** 李*瑜 ¥35,000 360102** ...

  5. 顶层Makefile学习记录

    make xxx_defconfig 的过程 make am64x_evm_r5_defconfig O=./testbuild V=1 make -C /home/wzx/ti-processor- ...

  6. Unity学习笔记--超简单:两个游戏对象直接用线连接(UI和世界坐标下均可)

    目录 UI用 效果图 UI代码示例 挂载示例 世界坐标用 挂载示例 效果图 世界坐标代码示例 我们分两种情况,一种是UI上连线,一种是世界坐标下连线. UI用 效果图 UI代码示例 public cl ...

  7. python 学习记录-用python从硬盘中读写文件 Day21

    (一)文件操作 文件操作步骤: 第一步: 打开文件 f = open(文件名, 操作模式, encoding=文件编码) 第二步: 读写文件 f.read() f.write() 第三步: 关闭文件 ...

  8. makefile学习(转载)

    该篇文章为转载,是对原作者系列文章的总汇加上标注. 支持原创,请移步陈浩大神博客: http://blog.csdn.net/haoel/article/details/2886 makefile很重 ...

  9. linux下Makefile学习--注释很好

    什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都 为你做了这个工作,但我觉得要作一个好的和 professional的程序员,makefile还 ...

最新文章

  1. 骂战之后,天才王垠或将加入华为,赵海平怒离职,加入字节跳动!
  2. Angular路由--基本用法
  3. 《把时间当作朋友》读书笔记(十四)--积累(二)
  4. jQuery.validate.js API
  5. 5部适合学英语的动画电影,快和孩子一起看!
  6. 【dfs】简单游戏(jzoj 2121)
  7. JAVA解析html文档,替换img图片路径成base64编码,并将文章存入数据库
  8. 《Python Cookbook 3rd》笔记(5.6):字符串的 I/O 操作
  9. mysql如何管理空间_管理空间的mysql数据库
  10. ext2fsd打开提示硬盘格式化_苹果Macbook电脑安装win10系统教程及错误提示信息解决方法...
  11. filter过滤后重新添加_Kibana基本使用---使用Flight Dashboard过滤数据
  12. 顶尖电子秤ls6恢复出厂_顶尖电子秤常见故障处理方法new
  13. SAP-MM-PA精解分析系列之供应商(02)-账户组解析
  14. 计算机电源 通电,笔记本电脑开不了机,通电后电源指示灯不亮
  15. Aeraki Mesh正式成为CNCF沙箱项目,腾讯云携伙伴加速服务网格成熟商用
  16. 如何在线制作二维码?学校通知二维码的3种制作方法
  17. SAP 未审批的采购订单(PO)提交到OA去审批,最后OA审批结果回写到SAP。
  18. NOIP 2016 PJ T4 魔法阵
  19. 上传图片计算机没有桌面,为什么我的电脑不能上传任何图片和文件?各位 – 手机爱问...
  20. OpenKruise 成为 CNCF 孵化项目:为大规模采用 Kubernetes 打开大门

热门文章

  1. Microsoft Office 2010安装失败
  2. 珍宝鸭的力扣练习(7):分治法题目合集
  3. mib文件导入mysql数据库_mysql之 sysbench1.0.3 安装与系统压力测试
  4. iOS入门攻略 01篇【电脑基本知识+快捷键+终端命令+Xcode+C语言数据类型】
  5. 用 java 生成 TexturePacker 的工程文件
  6. QQ服务器拒绝了你发送离线文件暂时解决办法
  7. QQ登不上出现蓝屏代码0X000000EA,电脑蓝屏的解决方法
  8. photoshop--PS第一步工具箱2
  9. 会议整理 | 2023年度国内外图像图形学术会议
  10. Python 学习笔记 列表 排序 xxx XXX