2015-10-19 42 views
0

我剛剛從源碼安裝了最新的OpenCV。安裝後,我發現OpenCV已經安裝在我的電腦上。現在我有一個/usr/include/opencv/usr/include/opencv2一起存在。如何讓構建使用兩個已安裝的OpenCV的較新版本?

當我試圖從最新版本編譯一個例子時,它自動進入目錄opencv2查找頭文件。很顯然,新版本中的一些示例需要只存在於opencv中的頭文件,但不包含在opencv2中。

我檢查了正在使用的版本,如下所示。

$ pkg-config --modversion opencv 
2.4.8 

如何清潔的舊版本,並設置環境變量,使得新的版本來代替?


感謝您指出。我沒有意識到在正常安裝中同時存在/opencv/opencv2。所以這些文件夾是不相關的。

這是我所做的安裝OpenCV。我跟着這個教程對我的新安裝的Ubuntu 14.04: http://www.bogotobogo.com/OpenCV/opencv_3_tutorial_ubuntu14_install_cmake.php

我git克隆,做了一個完整的安裝。我認爲git的源代碼版本是3.0.0,我錯了嗎?

從Ubuntu的軟件包倉庫

(對不起已故的編輯和非常感謝您的幫助!)

+0

我一直在使用apt-get。我不確定直接刪除舊版本,如果我這樣做,依賴項和其他設置是否會混亂? – CathIAS

+1

不確定是否意識到在單個OpenCV安裝中同時使用'opencv'和'opencv2'是正常的。 –

+1

請詳細說明_how_你從源代碼安裝OpenCV(cmake,make,sudo make install?)。請告訴我們您是否安裝了'libcv-dev'或'libopencv-dev'軟件包。 – moooeeeep

回答

2

要重現你的問題,我剛纔安裝的OpenCV:

$ sudo aptitude install libopencv-dev 

它把包括文件到這些地方:

/usr/include/opencv 
/usr/include/opencv2 

我然後下載並從這個地方安裝的OpenCV:http://opencv.org/

$ cd Downloads/opencv-3.0.0 
$ mkdir build 
$ cd build 
$ cmake .. 
[lots of configuration related output ...] 
$ make -j7 
[lots of build related output ...] 
$ sudo make install 
[lots of installation related output ...] 

pkg配置現在發現的較新版本:

$ pkg-config --modversion opencv 
3.0.0 

而且包括位於這裏:

/usr/local/include/opencv 
/usr/local/include/opencv2 

你不應該有問題,給您想要使用的以後安裝的版本。 (你確定你沒有正確安裝自定義生成:sudo make install


您可能需要刪除舊版本:

$ sudo aptitude remove libopencv-dev 

然而,你應該確保你不刪除依賴關係(zlib,libjpeg,libtiff,pibpng,...)。


這就是說,pkg-config爲您提供了最後發現的opencv.pc文件的詳細信息。

這些是可用的文件:

$ locate opencv.pc 
/usr/lib/x86_64-linux-gnu/pkgconfig/opencv.pc 
/usr/local/lib/pkgconfig/opencv.pc 

後者屬於較新的版本(從源代碼編譯),第一屬於舊版本(包安裝)。

這是搜索路徑:

$ pkg-config --variable pc_path pkg-config 
/usr/local/lib/x86_64-linux-gnu/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig 

鑑於這種順序在搜索路徑條目,你會得到通過pkg配置較新的版本。

相關問題