码迷,mamicode.com
首页 > 其他好文 > 详细

makefile 示例1

时间:2015-03-13 10:46:46      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:

# 设置编译器
CC = g++

# -fPIC 作用于编译阶段,告诉编译器产生与位置无关代码
# -D宏定义,相当于C中的全局#define,可以通过宏定义来控制源程序的编译,例如:
# #ifdef _FILELINE
# printf("Hello Yu Qiang, How are you?\n");
# #else
# printf("Sorry to lost you. \n");
# #endif
# 程序最终调用输出是: Hello Yu Qiang, How are you?
CFLAG = -g -fPIC -D_FILELINE

# mysql的头文件
MYSQLINC = /usr/include/mysql

INC = -I -Iinclude -I$(MYSQLINC)

# mysql库目录
MYSQLLIB = -L /usr/lib64/mysql -l mysqlclient -lz -lm

# 服务器目标
SERVEROBJS = src/file1.o src/file2.o src/file3.o

# 客户端目标
CLIENTOBJS = src/f1.o src/f2.o

# bin目录
BINDIR = bin

# checkbin 检查是否存在bin目录
# 在bin目录下生成 Server 与 Client
all: checkbin $(BINDIR)/Server $(BINDIR)/Client

# 生成 Server
# $^ 所有.o文件
# $@ 所有.c文件
$(BINDIR)/Server: $(SERVEROBJS)
$(CC) -g $(MYSLQLIB) $^ -o $@

# 生成Client
$(BINDIR)/Clietn: $(CLIENTOBJS)
$(CC) -g $(MYSQLLIB) $^ -o $@

# .SUFFIXES 连接后缀,把.o .cpp .c .cpp.o 这些文件连接起来编译。当前makefile内支持文件后缀的类型列表。
.SUFFIXES: .c .o .cpp
.cpp.o:
$(CC) $(CFLAG) $(INC) -o $@ -c $<

# .PHONY 伪目标
.PHONY: checkbin
checkbin:
test -d "${BINDIR}" || mkdir $(BINDIR)


.PHONY: clean
clean:
-rm -f *.o
-rm -f $(BINDIR)/Server

 

makefile 示例1

标签:

原文地址:http://www.cnblogs.com/sylar-liang/p/4334421.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!