3

To keep the Q&A aspect:

I got a strange problem with the latest (v.2.4.2) OpenCV version, which failed to install with the following error:

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

So what went wrong? Take a look at my answer.

1

2 Answers 2

6

As mentioned in this bug report the problem is an old version (2.8.2) of cmake. So the solution was to grab a fresh copy of the cmake source, compile it and use it to install OpenCV.

Note 18/09/2012: This also works on Ubuntu 12.04 with 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

That's it.

Sign up to request clarification or add additional context in comments.

2 Comments

+1 I've seen some questions complaining about this sort of problems. Never crossed my mind to update CMake. Good work!
What if i need to create the SO files of the library?
0

Unfortunately newer cmake depends on newer cmake than the outdated cmake 2.6-patch 0 in lenny. To compile cmake 2.8.8 as mentioned above, first you have to compile CMake 2.6.3 or above which builds with lenny outdated cmake 2.6-patch 0.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.