Easymake

Easymake太好用了,偷懒神器,强力推荐.

一、根目录下的easymake.mk就是makefile模板,我们自定义的makefile只需要包含这个模板即可

include ../../easymake.mk

二、源码包自带的sample够我们参考应用了。

drwx------ 4  4096  9月 26 10:56 basics
drwx------ 4  4096  9月 26 09:50 so
drwx------ 3  4096  9月 26 09:49 staticLib
drwx------ 4  4096  9月 26 09:49 vpath

1、basics常规应用,包含一个shell脚本,也就是copy一份makefile文件

cp ../../easymake.mk Makefile

运行实例

[email protected]:~/cb/easymake-master/samples/basics$ ./test.sh
cp ../../easymake.mk Makefile

make
g++   -MP -MMD -c -o bin/math/add.o  math/add.cpp
g++   -MP -MMD -c -o bin/add.o  add.cpp
# main detected
g++ -o bin/add bin/math/add.o bin/add.o

./bin/add
add(5,6) returns 11

create add_test.cpp

make test
g++   -MP -MMD -c -o bin/add_test.o  add_test.cpp
# main detected
g++ -o bin/add_test bin/math/add.o bin/add_test.o

# run [bin/add_test]
  # add_test: add_test.cpp:7: int main(): Assertion `add(1,1)==3‘ failed.
Makefile:216: recipe for target ‘test‘ failed
make: *** [test] Error 2

2、so生成库文件并且运行,用shell脚本来编译

make bin/libmylib.so

g++ add_test.cpp -I. -L./bin/ -lmylib -o bin/target

LD_LIBRARY_PATH=./bin/ ./bin/target

运行实例

[email protected]:~/cb/easymake-master/samples/so$ ./so_test.sh
g++  -I. -fPIC -MP -MMD -c -o bin/math/add.o  math/add.cpp
g++  -I. -fPIC -MP -MMD -c -o bin/add_test.o  add_test.cpp
# main detected

g++ -shared -o bin/libmylib.so bin/math/add.o
add(8,8)=16

3、staticLib生成静态库,就不一一编译运行了,同上

4、vpath这个实例可以同时编译多个可运行项目,makefile只需要添加自定义的项目源码路径就行了

VPATH = ../src2

include ../../../easymake.mk

运行实例

[email protected]:~/cb/easymake-master/samples/vpath/proj$ make
g++   -MP -MMD -c -o bin/math/add.o  math/add.cpp
g++   -MP -MMD -c -o bin/main.o  main.cpp
# main detected
g++   -MP -MMD -c -o bin/hello_world.o  ../src2/hello_world.cpp
g++   -MP -MMD -c -o bin/test.o  ../src2/test.cpp
# main detected
g++ -o bin/main bin/math/add.o bin/main.o bin/hello_world.o
g++ -o bin/test bin/math/add.o bin/hello_world.o bin/test.o

三、Easymake源码在这里下载

https://github.com/roxma/easymake
				
时间: 2024-11-07 08:02:16

Easymake的相关文章

工程管理之makefile与自动创建makefile文件过程

(风雪之隅 http://www.laruence.com/2009/11/18/1154.html) Linux Makefile自动编译和链接使用的环境 想知道到Linux Makefile系统的真相么,想知道Linux Makefile系统中藏有的内在奥义么,只有我来给大家全面讲解介绍Linux Makefile系统作为Linux下的程序开发人员,大家一定都遇到过Linux Makefile,用make命令来编译自己写的程序确实是很方便.一般情况下,大家都是手工写一个简单Linux Mak

project管理之makefile与自己主动创建makefile文件过程

(风雪之隅 http://www.laruence.com/2009/11/18/1154.html) Linux Makefile自己主动编译和链接使用的环境 想知道到Linux Makefile系统的真相么,想知道Linux Makefile系统中藏有的内在奥义么,仅仅有我来给大家全面解说介绍Linux Makefile系统作为Linux下的程序开发者,大家一定都遇到过Linux Makefile,用make命令来编译自己写的程序确实是非常方便.普通情况下,大家都是手工写一个简单Linux