轉自網址
修改cmake_install_prefix,
opencv3.1 安裝目錄/usr/local/opencv3,
opencv2.4 安裝目錄/usr/local/opencv2,
在cmake-gui中可以搜索cmake_install_prefix,修改。
注意如果準備切換opencv版本,一定不要選擇默認路徑,否則,鏈接opencv的時候會因爲多版本的lib發生鏈接衝突。
跳過系統環境變量的設置,設置/etc/profile和~/.bashrc導致同時使用不同版本時發生錯誤,所以跳過;
配置終端的環境變量,不同的終端設置不同的opencv
步驟:
打開終端,需要運行opencv3的,注意/usr/local/opencv3爲opencv3.1的安裝目錄
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv3/lib/pkgconfig
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/opencv3/lib
相應的,需要運行opencv2的,注意/usr/local/opencv2爲opencv2.4*的安裝目錄
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv2/lib/pkgconfig
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/opencv2/lib
pkgcongfig中的有opencv.pc保存有對應opencv的include和lib路徑,但是sudo ldconfig後生效,
可以用下列三個命令驗證
pkg-config --modversion opencv
pkg-config --cflags opencv
pkg-config --libs opencv
優點:
可以不同版本的opencv同時編譯;
缺點:
每個終端下運行opencv 都要設置對應的環境變量,新建終端默認沒有opencv的環境變量需要從重新設置。
第七步:CMakeLists的一點點修改
因爲usr/local/opencv3/share/OpenCV/OpenCVConfig.cmake中設置了opencv的配置,自定義路徑安裝opencv時,找不到這個文件OpenCVConfig.cmake,opencv-config.cmake
需要在項目的CMakeList.txt中添加OpenCVConfig.cmake的路徑
set(CMAKE_PREFIX_PATH "/usr/local/opencv3/share/OpenCV")
gpu版本的opencv在cmake時有兩個選項
CUDA_ARCH_BIN
CUDA_ARCH_PTX
第一個參考網址將gpu對應的計算能力填進去。
第二個參數後面的數值刪除
編譯時用make 不要用make -j多線程編譯。不差這麼一些時間。多線程編譯出現過編譯失敗的情況。