2012-07-13 164 views
3

爲了保持第q &方面:編譯OpenCV的2.4.2 Debian的萊尼

我得到了最新的(v.2.4.2)OpenCV的版本,它失敗,出現以下安裝一個奇怪的問題錯誤:

In file included from /OpenCV-2.4.2/modules/core/src/system.cpp:460:
/OpenCV-2.4.2/release/modules/core/version_string.inc:37:1: warning: missing terminating " character In file included from /OpenCV-2.4.2/modules/core/src/system.cpp:460: /OpenCV-2.4.2/release/modules/core/version_string.inc:37: error: missing terminating " character

那麼出了什麼問題? 看看我的答案。

+0

可能的重複[無法從源代碼安裝opencv](http: //stackoverflow.com/questions/10429570/cant-install-opencv-from-source) – 2012-09-22 20:38:23

回答

6

正如this bug report所述,問題是cmake的舊版本(2.8.2)。因此,解決方案是獲取cmake源代碼的全新副本,編譯並使用它來安裝OpenCV。

注意2012年9月18日:這也適用於Ubuntu 12.04與cmake 2.8.9!

# get the cmake src 
wget http://www.cmake.org/files/v2.8/cmake-2.8.8.tar.gz 

# extract archive 
tar xfvz cmake-2.8.8.tar.gz 

# build the new version 
cd cmake-2.8.8 
cmake . 
make 
sudo make install 

# get the OpenCV src 
wget -O OpenCV-2.4.2.tar.bz2 http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.2/OpenCV-2.4.2.tar.bz2/download 

# extract it … 
tar -xvf OpenCV-2.4.2.tar.bz2 

# build it 
mkdir build 
cd build 
/usr/local/bin/cmake -D CMAKE_BUILD_TYPE=RELEASE .. 
make 
sudo make install 

# setup OpenCV 
sudo echo 「/usr/local/lib」 >> /etc/ld.so.conf 
sudo ldconfig 

就是這樣。

+1

+1我見過一些抱怨這類問題的問題。從未想過要更新CMake。幹得好! – karlphillip 2012-07-13 13:50:19

+0

如果我需要創建庫的SO文件,該怎麼辦? – 2013-10-10 06:29:54

0

不幸的是,較新的cmake依賴於比lenny中過時的cmake 2.6-patch 0更新的cmake。要編譯上面提到的cmake 2.8.8,首先必須編譯CMake 2.6.3或更高版本,並使用lenny過時的cmake 2.6修補程序0.