Makefile及代码下载地址:http://download.csdn.net/detail/haohaojian/9742156
下载下来后输入make命令即可成功编译
以下是本人写的Makefile模板实例,带有比较详细的注释:
# 指令编译器和选项
CC=g++#-g 添加gdb调试信息;-Wall 提示warning信息;-O3 表示第3级优化;
CFLAGS=-g -Wall -O3
# 可执行文件
TARGET=main
# C文件
SRCS = \
main.c
SRCPPS = test.cpp
#./test-add/test-add.c \
#./test-sub/test-sub.c
#头文件
#INC = -I./test-add -I./test-sub
# 目标文件
OBJS = $(SRCS:.c=.o) $(SRCPPS:.cpp=.o)
#OBJS = $(SRCS:.c=.o)
# 库文件
#共享库
#DLIBS = -lm
# 链接为可执行文件
$(TARGET):$(OBJS)
#所有的目标
# @echo TARGET:$@
#去除重复的所有的依赖
# @echo OBJECTS:$^
#目标的第一个依赖
# @echo LAST:$<
#如果增加目标库注释下面一句,打开这一句# $(CC) -o $@ $^ $(DLIBS)
$(CC) -o $@ $^
clean:
rm -rf $(TARGET) $(OBJS)
# 连续动作,请清除再编译链接,最后执行
exec:clean $(TARGET)
@echo 开始执行
./$(TARGET)
@echo 执行结束
# 编译规则 $@代表目标文件 $< 代表第一个依赖文件
%.o:%.c
#没有加头文件目录时
$(CC) $(CFLAGS) -o $@ -c $<
%.o:%.cpp
$(CC) $(CFLAGS) -o $@ -c $<
#加入头文件目录时
# $(CC) $(CFLAGS) $(INC) -o $@ -c $<
以下是源代码:
main.c:
#include"test.h"
int main()
{
pri();
return 0;
}
test.cpp:
#include<stdio.h>
void pri()
{
printf("test\n");
}
test.h:
#ifndef TEST_H
#define TEST_H
void pri();
#endif
关于makefile语法觉得以下链接可以参考:http://www.cnblogs.com/wang_yb/p/3990952.html