c/c++混合编程Makefile范例

来源:互联网 发布:淘宝友邦电器城假货 编辑:程序博客网 时间:2024/05/22 01:14

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

0 0
原创粉丝点击