码迷,mamicode.com
首页 > 系统相关 > 详细

Linux工程下所有C代码编译Makefile模板

时间:2016-05-12 12:25:23      阅读:227      评论:0      收藏:0      [点我收藏+]

标签:

如何快速的开发简易C程序,首先需要一个Makefile模板。


简易Makefile特性

这个模板需要具备以下特性:

==》快速编译所有C代码

==》能够快速打包源代码

==》语言简洁易懂,便于后续的模块化操作


这里提供一个这样的模板供大家参考使用,如有改进方法和建议,也请不吝赐教,以便完善,谢谢!


简易Makefile模板

废话不说,使用《Linux下C/C++版本发布自动脚本》集成DEMO的三个文件进行简单的示例(version.c/main.c/version.h)。

Makefile模板文件,编译输出hello可执行程序。

#Makefile for program hello
#

program := hello

sources := $(wildcard *.c)
headers := $(wildcard *.h)

objects := $(sources:.c=.o)
deps    := $(sources:.c=.d)

CC      := gcc
SHARED  := -shared
FPIC    := -fPIC
CFLAGS  := 
LDFLAGS := 

RM      := rm -f
TAR     := tar
GZIP    := gzip

me      := Makefile

all:    $(program)

hello:  $(objects)
		$(CC) -o $@ $(CFLAGS) $(objects) $(LDFLAGS) $(LDLIBS)

dist:
		pkg=`pwd`; tar cvf - $(me) $(sources) $(headers)                 | $(GZIP) -c > `basename $${pkg}`.tar.gz
clean:
		$(RM) $(objects)
		$(RM) $(deps)
		$(RM) $(program)

.SUFFIXES: .d
.c.d:
		$(CC) $(CPPFLAGS) -MM -MF $@ $<

-include $(deps)

简易Makefile模板下载

打包资料下载


工程测试结果

测试结果如下所示:

# ls
main.c  Makefile  version.c  version.h
# make
gcc  -MM -MF version.d version.c
gcc  -MM -MF main.d main.c
gcc    -c -o main.o main.c
gcc    -c -o version.o version.c
gcc -o hello  main.o version.o
# ls
hello  main.c  main.d  main.o  Makefile  version.c  version.d  version.h  version.o
# ./hello
get_version: DEBUG_2016-05-10_18:41:24_v1_2_271
get_ver_author: lida
get_ver_author_contact: lida@palfocus.com
get_ver_flag: DEBUG
get_build_date: 2016-05-10
get_build_time: 18:41:24
get_ver_major: 1
get_ver_minor: 2
get_ver_rev: 271
# make dist
pkg=`pwd`; tar cvf - Makefile main.c version.c version.h                 | gzip -c > `basename ${pkg}`.tar.gz
Makefile
main.c
version.c
version.h
# make clean
$ ls
main.c  Makefile  version.c  version.h  version.tar.gz

参考资料

【1】简单开发过程介绍(C语言) 
【2】Linux应用程序之Helloworld入门 
【3】Linux下C/C++版本发布自动脚本 
【4】Linux下常用打包、解压方法(tar、bz2、rar)详解

Linux工程下所有C代码编译Makefile模板

标签:

原文地址:http://blog.csdn.net/lida2003/article/details/11849943

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