makefile---多个源文件,多个可执行文件(C/C++)
2015-09-18 11:05
609 查看
makefile
作用:将多个源文件通过一个makefile文件进行编译生成多个可执行文件。
环境:Vmware Workstation;CentOS-6.4-x86_64
图解说明:
1、创建并编辑文件main1.c:
#include <stdio.h>
int main()
{
printf("main1\n");
return 0;
}
2、创建并编辑文件main2.c:
#include <stdio.h>
int main()
{
printf("main2\n");
return 0;
}
3、创建并编辑文件makefile:
.SUFFIXES:.c .o
CC=gcc
SRCS1=main1.c
OBJS1=$(SRCS1:.c=.o)
EXEC1=main1
SRCS2=main2.c
OBJS2=$(SRCS2:.c=.o)
EXEC2=main2
start: $(OBJS1) $(OBJS2)
$(CC) -o $(EXEC1) $(OBJS1)
$(CC) -o $(EXEC2) $(OBJS2)
@echo "-----------------------------OK-----------------------"
.c.o:
$(CC) -Wall -g -o $@ -c $<
clean:
rm -rf $(EXEC1) $(OBJS1)
rm -rf $(EXEC2) $(OBJS2)
4、编译源文件并执行:
说明:
1、上面的文件必须在同一个文件夹中。
2、把.c改成.cpp,把gcc改成g++,就可以编译C++文件。
PS:根据传智播客视频学习整理得出。
作用:将多个源文件通过一个makefile文件进行编译生成多个可执行文件。
环境:Vmware Workstation;CentOS-6.4-x86_64
图解说明:
1、创建并编辑文件main1.c:
#include <stdio.h>
int main()
{
printf("main1\n");
return 0;
}
2、创建并编辑文件main2.c:
#include <stdio.h>
int main()
{
printf("main2\n");
return 0;
}
3、创建并编辑文件makefile:
.SUFFIXES:.c .o
CC=gcc
SRCS1=main1.c
OBJS1=$(SRCS1:.c=.o)
EXEC1=main1
SRCS2=main2.c
OBJS2=$(SRCS2:.c=.o)
EXEC2=main2
start: $(OBJS1) $(OBJS2)
$(CC) -o $(EXEC1) $(OBJS1)
$(CC) -o $(EXEC2) $(OBJS2)
@echo "-----------------------------OK-----------------------"
.c.o:
$(CC) -Wall -g -o $@ -c $<
clean:
rm -rf $(EXEC1) $(OBJS1)
rm -rf $(EXEC2) $(OBJS2)
4、编译源文件并执行:
[negivup@negivup mycode]$ make gcc -Wall -g -o main1.o -c main1.c gcc -Wall -g -o main2.o -c main2.c gcc -o main1 main1.o gcc -o main2 main2.o -----------------------------OK----------------------- [negivup@negivup mycode]$ ls main1 main1.c main1.o main2 main2.c main2.o makefile [negivup@negivup mycode]$ main1 main1 [negivup@negivup mycode]$ main2 main2
说明:
1、上面的文件必须在同一个文件夹中。
2、把.c改成.cpp,把gcc改成g++,就可以编译C++文件。
PS:根据传智播客视频学习整理得出。
相关文章推荐
- C++如何调用C#编写的DLL
- makefile---单多个源文件,单个可执行文件(C/C++)
- C++封装、继承、多态
- C/C++__typedef用法
- c语言 conio.h头文件介绍
- 快速排序C++
- C语言中的getchar和putchar详解
- C/C++变量值交换的两种方式
- C语言结构体做参数易错情况分析
- c++ 类的对象与指针
- C++ 继承中的一个小知识点
- iOS开发之SQLite--C语言接口规范(三)——Binding Values To Prepared Statements
- C语言运算符优先级列表
- C语言中数组的几种输入
- C语言读入多组数并打印数值和
- C/C++专项练习 (一)
- 我的第一份工作的得与失
- C++ json库jsoncpp 吐槽
- C语言中extern的用法
- 【第3周 项目4 - 顺序表应用】