到 document 去 search install,然後選 install_Linux 部份...
tutorial_linux_install
以下照做..
..git clone, cmake, make, make install.. 過然就 OK 了.
-- 為了避免跟 distribution 安裝的opencv library 衝突,所以改INSTALL_PATH 到 ~/opencvlib 下。
source code 的 samples/cpp/example_cmake 下有一個 Makefile 可以作為 build app 的標準 Makefile
CXX ?= g++ CXXFLAGS += -c -Wall $(shell pkg-config --cflags opencv) LDFLAGS += $(shell pkg-config --libs --static opencv) all: opencv_example opencv_example: example.o; $(CXX) $< -o $@ $(LDFLAGS) %.o: %.cpp; $(CXX) $< -o $@ $(CXXFLAGS) clean: ; rm -f example.o opencv_examplebuild Z 的 sample 結果出現 xfeature2d.hpp 找不到,這是在 opencv_contrib 裡...
所以,git clone https://github.com/opencv/opencv_contrib.git
build contrib module 的 option 有在說明的後面...
重新安排一次..
mkdir opencv && cd opencv git clone https://github.com/opencv/opencv git clone https://github.com/opencv/opencv_contribcreate 安裝的 folder:
mkdir opencvlib cd opencv mkdir build && cd build cmake -D CMAKE_BUILD_TYPE=release -D CMAKE_INSTALL_PREFIX=/home/charles-chang/opencv/opencvlib -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules/ ..
另外,如果是gcc 6.X 配上 opencv3.1.0,還要加上 -DENABLE_PRECOMPILED_HEADERS=OFF 這個 option,否則會出現 stdlib.h not found 的 error。(ref)
還要配上hdf5.h not found 增加定義..
這樣 make OK,但是 build 自己的 code 的時候,會出現 libippicv 找步道,就要照這一篇,再增加定義....
最後,cmake 的 command option 是...
cmake -D CMAKE_BUILD_TYPE=release -D CMAKE_INSTALL_PREFIX=/home/charles-chang/opencv/lib3.1.0 -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules/ -D ENABLE_PRECOMPILED_HEADERS=OFF -D WITH_IPP=ON -D INSTALL_CREATE_DISTRIB=ON ..這樣 build 出來的 opencv 已經可以正常 build application 了。
但是因為是 local install。所以執行 build 好的 application 時,會出現 so 找不到的錯誤。
就要設 LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/charles-chang/opencv/lib3.1.0/lib/之後再 run 就 OK 了。
build opencv static library
build static library
沒有留言:
張貼留言