静态链接库创建
- ar -rv maze.a BaseRouter.o ,将BaseRouter.o加入maze.a这个静态链接库中
- ranlib maze.a ,更新静态链接库符号表
- 库文件一般将.cpp改成.cxx
makefile笔记
- .PHONY: clean 表示clean为伪目标,否则如果文件夹下有clean文件会出错
- 而命令中的
@ 则是自动化变量,
@ 表示目标集(就是BaseRouter.o ),参见样例1
- makefile在target为.o的时候,dependence可以自动省略.cc,可以使用类似于main.o : defs.h 的语法
- makefile只会完成第一个规则的第一个目标
(wildcard *.cxx)
sSOURCES=(wildcard *.h)
lOBJECTS=(sSOURCES:%.cpp=%.o)
TARGET=maze.exe
LIB=maze.aall:
(LIB)
(sOBJECTS)
(LIB)
@echo “Now Generating(sOBJECTS)
(TARGET)
(lOBJECTS)
(LIB) …”
ar -rv(lOBJECTS)
ranlib(HEADERS)
@echo “Now Compiling< -o
(HEADERS)
@echo “Now Compiling< -o
(lSOURCES)”
@echo “User Sources:(lOBJECTS)”
@echo “User Objects:(LIB)”
@echo “Target: $(TARGET)”BaseRouter.cxx BaseRouter.h OptRouter.h main.cpp makefile