多版本opencv編譯配置

轉自網址

修改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多線程編譯。不差這麼一些時間。多線程編譯出現過編譯失敗的情況。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章