.
├── aa.sh
├── makefile
├── public.cpp
└── public.h
写sh脚本
//aa.sh g++ -c -o libpublic.a public.cpp g++ -fPIC -shared -o libpublic.so public.cpp
执行ssh脚本
sh aa.sh
编写makefile
#指定编译的目标文件libpublic.a和libpublic.so all:libpublic.a libpublic.so #编译libpublic.a需要依赖public.h和public.cpp #如果被依赖文件内容发生了变量,将重新编译libpublic.a libpublic.a:public.h public.cpp g++ -c -o libpublic.a public.cpp libpublic.so:public.h public.cpp g++ -fPIC -shared -o libpublic.so public.cpp #clean用于清理编译目标文件,仅在make clean才会执行 clean: rm -f libpublic.a libpublic.so
执行makefile
make
执行清理
make clean
被依赖的文件改变make会重新编译
├── app
│ ├── demo
│ ├── demo.cpp
│ └── makefile
└── tools
├── aa.sh
├── libpublic.a
├── makefile
├── public.cpp
└── public.h
#app/makefile all:demo demo:demo.cpp g++ -o demo demo.cpp -L/root/code/02demo/tools -lpublic -I/root/code/02demo/tools clean: rm -f demo
-I添加.h包含目录
设置变量
#app/makefile INCLUDEDIR=-I/root/code/02demo/tools LIBDIR=-L/root/code/02demo/tools all:demo demo:demo.cpp g++ -o demo demo.cpp $(LIBDIR) -lpublic $(INCLUDEDIR) clean: rm -f demo