makefile---单多个源文件,单个可执行文件(C/C++)
2015-09-18 10:47
441 查看
makefile
作用:将多个源文件编译生成一个可执行文件。
环境:Vmware Workstation;CentOS-6.4-x86_64
说明:a.c,a.h,main.c,makefile在同一个文件夹中。
1、创建并编辑a.h,a.h的代码如下:
void test();
2、创建并编辑a.c,a.c的代码如下:
#include "a.h"
void test()
{
printf("a.test func\n");
}
3、创建并编辑main.c,main.c的代码如下:
#include <stdio.h>
#include "a.h"
int main(int argc, char *args[])
{
test();
return 0;
}
4、创建并编辑makefile,makefile的代码如下:
.SUFFIXES:.c .o
CC=gcc
SRCS=main.c \
a.c
OBJS=$(SRCS:.c=.o)
EXEC=main
start: $(OBJS)
$(CC) -o $(EXEC) $(OBJS)
@echo "-----------------------------OK-----------------------"
.c.o:
$(CC) -Wall -g -o $@ -c $<
clean:
rm -rf $(EXEC) $(OBJS)
5、编译文件并执行:
[negivup@negivup mycode]$ <span style="background-color: rgb(255, 255, 153);">make</span>
gcc -Wall -g -o main.o -c main.c
gcc -Wall -g -o a.o -c a.c
gcc -o main main.o a.o
-----------------------------OK-----------------------
[negivup@negivup mycode]$ <span style="background-color: rgb(255, 255, 153);">./main</span>
a.test func
说明:将.c改成.cpp,gcc改成g++就可以编译C++程序。
PS:根据传智播客视频学习,整理得出。
作用:将多个源文件编译生成一个可执行文件。
环境:Vmware Workstation;CentOS-6.4-x86_64
说明:a.c,a.h,main.c,makefile在同一个文件夹中。
1、创建并编辑a.h,a.h的代码如下:
void test();
2、创建并编辑a.c,a.c的代码如下:
#include "a.h"
void test()
{
printf("a.test func\n");
}
3、创建并编辑main.c,main.c的代码如下:
#include <stdio.h>
#include "a.h"
int main(int argc, char *args[])
{
test();
return 0;
}
4、创建并编辑makefile,makefile的代码如下:
.SUFFIXES:.c .o
CC=gcc
SRCS=main.c \
a.c
OBJS=$(SRCS:.c=.o)
EXEC=main
start: $(OBJS)
$(CC) -o $(EXEC) $(OBJS)
@echo "-----------------------------OK-----------------------"
.c.o:
$(CC) -Wall -g -o $@ -c $<
clean:
rm -rf $(EXEC) $(OBJS)
5、编译文件并执行:
[negivup@negivup mycode]$ <span style="background-color: rgb(255, 255, 153);">make</span>
gcc -Wall -g -o main.o -c main.c
gcc -Wall -g -o a.o -c a.c
gcc -o main main.o a.o
-----------------------------OK-----------------------
[negivup@negivup mycode]$ <span style="background-color: rgb(255, 255, 153);">./main</span>
a.test func
说明:将.c改成.cpp,gcc改成g++就可以编译C++程序。
PS:根据传智播客视频学习,整理得出。
相关文章推荐
- 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 - 顺序表应用】
- c语言结构体中的冒号的用法
- 第3周项目1 顺序表的基本运算