几个好用的makefile几乎可以不用修改(转) makefile修改环境变量

Makefile

用 makefile 来编译工程,对很多朋友来说都是一件麻烦而痛苦的事情,这里我写了几个 makefile ,专门提供给那些曾经被makefile 困扰的朋友,根据生成的目标文件不同,我将 makefile 分成了三份:生成可执行文件的 makefile,生成静态链接库德 makefile ,生成动态链接库的 makefile 。

这些 makefile 都很简单,一般都是一看就会用,用法也很容易,只需要把它们拷贝到你的代码的同一目录下,然后就可以使用 make来生成目标文件了。

是不是真的有这么神奇?呵呵,你自己用用就知道了。

当然,如果要用到什么库文件,你还需要修改一些编译参数,这个可以对照我转载的另一篇文章《 GNU make 指南》。

下面是三个 makefile 的源代码:

1 、生成可执行文件的 makefile

######################################

#

# Generic makefile

#

# by Coon Xu

# email: coonxu@126.com

#

# Copyright (c) 2005 Coon Xu

# All rights reserved.

#

# No warranty, no liability;

# you use this at your own risk.

#

# You are free to modify and

# distribute this without giving

# credit to the original author.

#

######################################

#source file

# 源文件,自动找所有 .c 和 .cpp 文件,并将目标定义为同名 .o 文件

SOURCE := $(wildcard *.c) $(wildcard*.cpp)

OBJS :=$(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(SOURCE)))

#target you can change test to what you want

# 目标文件名,输入任意你想要的执行文件名

TARGET := test

#compile and lib parameter

# 编译参数

CC:= gcc

LIBS:=

LDFLAGS:=

DEFINES:=

INCLUDE:= -I.

CFLAGS := -g -Wall -O3 $(DEFINES)$(INCLUDE)

CXXFLAGS:= $(CFLAGS) -DHAVE_CONFIG_H

#i think you should do anything here

# 下面的基本上不需要做任何改动了

.PHONY : everything objs clean veryclean rebuild

everything : $(TARGET)

all : $(TARGET)

objs : $(OBJS)

rebuild: veryclean everything

clean :

rm -fr*.so

rm -fr*.o

veryclean : clean

rm -fr$(TARGET)

$(TARGET) : $(OBJS)

$(CC)$(CXXFLAGS) -o $@ $(OBJS) $(LDFLAGS) $(LIBS)

2 、生成静态链接库的 makefile

######################################

#

# Generic Static Library makefile

#

# by Coon Xu

# email: coonxu@126.com

#

# Copyright (c) 2005 Coon Xu

# All rights reserved.

#

# No warranty, no liability;

# you use this at your own risk.

#

# You are free to modify and

# distribute this without giving

# credit to the original author.

#

######################################

#target you can change test to what you want

# 共享库文件名, lib*.a

TARGET := libtest.a

几个好用的makefile几乎可以不用修改(转) makefile修改环境变量

#compile and lib parameter

# 编译参数

CC:= gcc

AR= ar

RANLIB = ranlib

LIBS:=

LDFLAGS:=

DEFINES:=

INCLUDE:= -I.

CFLAGS := -g -Wall -O3 $(DEFINES)$(INCLUDE)

CXXFLAGS:= $(CFLAGS) -DHAVE_CONFIG_H

#i think you should do anything here

# 下面的基本上不需要做任何改动了

#source file

# 源文件,自动找所有 .c 和 .cpp 文件,并将目标定义为同名 .o 文件

SOURCE := $(wildcard *.c) $(wildcard*.cpp)

OBJS :=$(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(SOURCE)))

.PHONY : everything objs clean veryclean rebuild

everything : $(TARGET)

all : $(TARGET)

objs : $(OBJS)

rebuild: veryclean everything

clean :

rm -fr*.o

veryclean : clean

rm -fr$(TARGET)

$(TARGET) : $(OBJS)

$(AR) cru$(TARGET) $(OBJS)

$(RANLIB)$(TARGET)

3 、生成动态链接库的 makefile

######################################

#

# Generic Share Library makefile

#

# by Coon Xu

# email: coonxu@126.com

#

# Copyright (c) 2005 Coon Xu

# All rights reserved.

#

# No warranty, no liability;

# you use this at your own risk.

#

# You are free to modify and

# distribute this without giving

# credit to the original author.

#

######################################

#target you can change test to what you want

# 共享库文件名, lib*.so

TARGET := libtest.so

#compile and lib parameter

# 编译参数

CC:= gcc

LIBS:=

LDFLAGS:=

DEFINES:=

INCLUDE:= -I.

CFLAGS := -g -Wall -O3 $(DEFINES)$(INCLUDE)

CXXFLAGS:= $(CFLAGS) -DHAVE_CONFIG_H

SHARE := -fPIC -shared-o

#i think you should do anything here

# 下面的基本上不需要做任何改动了

#source file

# 源文件,自动找所有 .c 和 .cpp 文件,并将目标定义为同名 .o 文件

SOURCE := $(wildcard *.c) $(wildcard*.cpp)

OBJS :=$(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(SOURCE)))

.PHONY : everything objs clean veryclean rebuild

everything : $(TARGET)

all : $(TARGET)

objs : $(OBJS)

rebuild: veryclean everything

clean :

rm -fr*.o

veryclean : clean

rm -fr$(TARGET)

$(TARGET) : $(OBJS)

$(CC)$(CXXFLAGS) $(SHARE) $@ $(OBJS) $(LDFLAGS) $(LIBS)

  

爱华网本文地址 » http://www.aihuau.com/a/25101015/244186.html

更多阅读

IOS7越狱后有哪些好用的插件? ios7越狱后天气插件

IOS7越狱后有哪些好用的插件?——简介很多人用的IPHONE都越狱了,可很多人都不体验不到越狱的好处,这么好的的资源不能白白浪费,如果你没有安装到我介绍的以下几个插件的其中一个,那么你就要承认自己是个小白,你根本就不知道什么叫越狱,废话

免费杀毒软件有哪些?哪款 个好用? 免费杀毒软件哪款最好

免费杀毒软件有哪些?哪(款)个好用?——简介 选一款合适的杀毒软件,即要求能保护好你的电脑系统,也需要其有着不拖占电脑内存,爆满CPU的要求,寻遍天下杀毒利器,纵有千万好评,总也会有些须人的不满情绪。那么选哪款杀毒软件来保护你的电脑?如何选

苹果 iOS 7 超好用的 Spotlight 搜索使用技巧 mac spotlight 技巧

苹果 iOS 7 超好用的 Spotlight 搜索使用技巧——简介在iOS 6及以往的系统版本中,在主界面第一屏向右滑动会启动spotlight搜索,使用过的朋友一定觉得很实用,没有使用过的也会对其有印象。新版的iOS 7系统取消了主屏向右滑动启动spotlig

推荐几款好用的学英语软件 英语口语练习软件推荐

推荐几款好用的学英语软件——简介为了看懂美剧,或者为了出国旅游和别人交流无障碍,或者是工作需要,或者是个人兴趣,学英语的是越来越多了,我自己也喜欢英语。自从有了智能手机各种手机app还有电脑版软件我都尝试了,筛选出几个,个人觉得比

几个简单有效的减肥教程 简单有效的减肥动作

几个简单有效的减肥教程——简介随着我们生活的提高,饮食也是越来越好, 从而有些人也会营养过剩而导致肥胖。到了夏季更是悲伤,不能买漂亮衣服,今天给大家分享一写减肥的方法,当然 减肥也需要坚持的。只能能坚持,所有的漂亮衣服在向你招手

声明:《几个好用的makefile几乎可以不用修改(转) makefile修改环境变量》为网友蓝色流星分享!如侵犯到您的合法权益请联系我们删除