Linux简易Makefile编写

CC = g++
TARGET = demo
RELEASE_PATH = demo_release
SOURCE = *.cpp
INCLUDE_PATH = opencv/include
LIB_PATH = opencv3.3.1_gnu64/lib
LIBS += -lopencv_core -lopencv_calib3d -lopencv_highgui \
 -lopencv_imgproc -lopencv_imgcodecs -lopencv_features2d \
 -lopencv_flann
make:
	rm -f $(TARGET)
	$(CC) $(SOURCE) -I$(INCLUDE_PATH) -L$(LIB_PATH) $(LIBS) -o $(TARGET)
	chmod 777 $(TARGET)
clean:
	rm -rf *.png $(TARGET)
run:
	export LD_LIBRARY_PATH=./$(LIB_PATH) && ./$(TARGET) 
release:
	rm -rf $(RELEASE_PATH)
	mkdir -p $(RELEASE_PATH)
	cp $(TARGET) $(RELEASE_PATH)/$(TARGET)
	cp -r cameradata $(RELEASE_PATH)
	cp -r img $(RELEASE_PATH)
	cp $(LIB_PATH)/* $(RELEASE_PATH)
	touch $(TARGET)_release/start.sh
	echo "#!/bin/bash" >> $(RELEASE_PATH)/start.sh
	echo "export LD_LIBRARY_PATH=./" >> $(RELEASE_PATH)/start.sh
	echo "./$(TARGET)" >> $(RELEASE_PATH)/start.sh
	chmod 777 $(RELEASE_PATH)/$(TARGET)
	chmod 777 $(RELEASE_PATH)/start.sh
del_release:
	rm -rf $(RELEASE_PATH)

目录结构如下

fy@FYPC:~/cv_workspace/sorroundview$ tree -L 3
.
├── cameradata
│   ├── B
│   │   ├── CalibrateResult.xml
│   │   └── config.xml
│   ├── F
│   │   ├── CalibrateResult.xml
│   │   └── config.xml
│   ├── G.xml
│   ├── L
│   │   ├── CalibrateResult.xml
│   │   └── config.xml
│   ├── R
│   │   ├── CalibrateResult.xml
│   │   └── config.xml
│   └── S
│       └── config.xml
├── demo.cpp
├── imagepro.cpp
├── imagepro.h
├── img
│   ├── 1.png
│   ├── 2.png
│   ├── 3.png
│   ├── 4.png
│   └── car.png
├── Makefile
└── opencv3.3.1_gnu64
    ├── include
    │   ├── opencv
    │   └── opencv2
    └── lib
        ├── libopencv_calib3d.so.3.3.1
        ├── libopencv_core.so.3.3.1
        ├── libopencv_features2d.so.3.3.1
        ├── libopencv_flann.so.3.3.1
        ├── libopencv_highgui.so.3.3.1
        ├── libopencv_imgcodecs.so.3.3.1
        └── libopencv_imgproc.so.3.3.1

12 directories, 26 files

make,进行编译

运行make run

清除生成的文件make clean

打包应用给别人make编译后,make release

如下图生成了demo_release,并将相关的动态链接库添加到了目录中,同时给定start.sh文件,将start.sh和demo都设为rwx

start.sh生成如下

#!/bin/bash
export LD_LIBRARY_PATH=./
./demo

注:如果需要编译动态库,换个命令行即可

CCG = g++
CC = $(CCG)
SDKSOPATH = ./
SDKSO = libSur.1.so
SOURCE = *.cpp
INCLUDE_PATH = opencv3.3.1_gnu64/include
LIB_PATH = opencv3.3.1_gnu64/lib
LIBS += -lopencv_core -lopencv_imgproc -lopencv_imgcodecs -lopencv_features2d -lopencv_flann

$(CC) -shared -fPIC $(SDKSOPATH)$(SOURCE) -o $(SDKSO) -I$(INCLUDE_PATH) -L$(LIB_PATH) $(LIBS)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值