Jiwu Bu
C++博客
::
首页
::
新随笔
::
联系
::
聚合
::
管理
::
32 随笔 :: 0 文章 :: 25 评论 :: 0 Trackbacks
<
2008年12月
>
日
一
二
三
四
五
六
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(4)
给我留言
查看公开留言
查看私人留言
随笔分类
Boost(2)
(rss)
C++(6)
(rss)
Linux(17)
(rss)
Linux内核VFS(1)
(rss)
Note(1)
(rss)
Windows(1)
(rss)
算法与数据结构(5)
(rss)
随笔档案
2010年7月 (1)
2010年4月 (1)
2010年1月 (1)
2009年12月 (1)
2009年11月 (10)
2009年9月 (2)
2009年8月 (2)
2009年7月 (1)
2009年1月 (9)
2008年12月 (1)
2008年10月 (3)
相册
Me
搜索
最新评论
1. re: Linux下文件打包与解包[未登录]
好
--小米
2. re: Windows Socket编程
@Ruby
项目-属性-配置属性-清单工具-输入输出-嵌入清单 选择否
--langl
3. re: Gvim操作汇总
请问vim有反向选择功能么?
--我爱自由
4. re: Linux与Windows中map类erase方法的差异[未登录]
牛
--wz
5. re: 从STL中的list删除元素
学习了
--CDD
阅读排行榜
1. Windows Socket编程(50238)
2. 从STL中的list删除元素(22069)
3. Linux添加环境变量与GCC编译器添加INCLUDE与LIB环境变量(18498)
4. 堆排序算法总结!(10348)
5. 几种内部排序算法总结!(冒泡排序、快速排序、直接插入排序、拆半插入排序、简单选择排序)(6854)
评论排行榜
1. Windows Socket编程(9)
2. Linux与Windows中map类erase方法的差异(4)
3. 通过更改函数地址为函数打补丁(3)
4. Linux添加环境变量与GCC编译器添加INCLUDE与LIB环境变量(2)
5. 从STL中的list删除元素(2)
Linux下Makefile文件
生成动态库(*.so)Makefile文件
#Lib information
CURDIR =$(shell pwd)
LIBNAME :=libmyso.so
OUTDIR :=$(CURDIR)
OUTFILE :=$(OUTDIR)/$(LIBNAME)
SRC =node.cpp
OBJS =$(SRC:.cpp=.o)
#Complier information
CC = g++
INCPATH :=
LIBPATH :=
LIBS :=
COMOPT := -O2
all:$(OBJS)
$(CC) -fPIC -shared -o $(OUTFILE) $(OBJS)
%.o:%.cpp
$(CC) -c $(COMOPT) $(INCPATH) -o $@ $<
clean:
rm -rf $(CURDIR)/*.o
生成静态库(*.a)Makefile文件
#lib information
CURDIR =$(shell pwd)
LIBNAME :=libmylib.a
OUTDIR :=$(CURDIR)
OUTFILE :=$(OUTDIR)/$(LIBNAME)
SRC = Display.cpp
OBJS =$(SRC:.cpp=.o)
#complier information
CC=g++
INCPATH :=
LIBPATH :=
LIBS :=
COMOPT := -O2
all:$(OBJS)
ar -r $(OUTFILE) $(OBJS)
%.o:%.cpp
$(CC) -c $(COMOPT) $(INCPATH) -o $@ $<
clean:
rm -rf $(CURDIR)/*.o
比较通用的Makefile文件
#CPP Files Directory
vpath %.cpp ./../
vpath %.cpp ./../Student
#Head Files Directory
vpath %.h ./../Student/
#Get Makefile Current Directory
CURDIR =$(shell pwd)
SRC =Main.cpp \
Student.cpp
SRC_OBJ =$(SRC:.cpp=.o)
CCFLAGS =-O2 -g -DUT_4_16
CXX =g++
CPPFLAGS =
#Load Static Library
LIBDIR =-L $(CURDIR)/../StaticLib -lmylib $(CURDIR)/../DynamicLib/libmyso.so
#Load Library Head Files
INCDIR =-I $(CURDIR)/../StaticLib -I $(CURDIR)/../DynamicLib
.PHONY :all
all :edit run
.PHONY :edit
edit: $(SRC_OBJ)
$(SRC_OBJ):%.o :%.cpp
$(CXX) $(INCDIR) -c $(CCFLAGS) $(CPPFLAGS) $< -o $@
.PHONY :run
run: $(SRC_OBJ)
$(CXX) $(INCDIR) $(SRC_OBJ) $(LIBDIR) -o Main
.PHONY :clean
clean:
rm $(SRC_OBJ)
最简单的Makefile文件
#假设只有一个文件Main.cpp生成Makefile文件
Main:Main.o
g++ -o $@ $^
%.o:%.cpp %.h
g++ -c $@ $>
不需要手工添加各个文件的依赖关系,使用vpath自动搜索文件!
测试工程:
http://www.cppblog.com/Files/bujiwu/Linux.rar
posted on 2008-12-29 22:40
bujiwu
阅读(1110)
评论(0)
编辑
收藏
引用
所属分类:
Linux
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
[转载]top命令详解
Unix Network Programming - Vol2 读书笔记(Chapter 9. Record Locking)
semaphore信号学习笔记
setitimer函数使用笔记
pthread_mutex_t封装
进程间通讯--System V 共享内存
进程间通讯--System V 消息队列
转载:什么是Core Dump
创建守护进程函数
Linux与Windows中map类erase方法的差异
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理
Powered by:
C++博客
Copyright © bujiwu