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)