So, I had several issues - the first of which, I could not compile an opencv sample… not the ones on the wiki - those compiled just fine… and still cannot compile gpu/stereo_match.cpp against opencv4tegra?? BUT, I can run my compiled sample against an installation of opencv4tegra… very strange.
However, I got around this ‘originally stated issue’:
OpenCV Error: Unspecified error (The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support.
If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script)
in cvShowImage, file $/modules/highgui/src/window.cpp, line 501
…as was stated above, by the following:
First, you have to check out opencv and build it on your machine. This is because, if you read the opencv documentation, you need to first install several dev packages on your machine.
see: http://docs.opencv.org/doc/tutorials/introduction/linux_install/linux_install.html
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
Also, if you install any of these after you’ve already started an opencv build… you need to first delete your build directory (as ‘make clean’ will not reconfigure your build). And then rerun ‘cmake’ inside your directory again to get the CMakeCache.txt properly linked to the dev packages, in particular libgtk2.0-dev headers used by highgui.so
You have to do this:
git clone https://github.com/Itseez/opencv.git <opencv-checkout-dir>
mkdir <opencv-checkout-dir>/build
cd <opencv-checkout-dir>/build
cmake ..
Then you will need to modify a few things in the build/CMakeCache.txt file:
BUILD_EXAMPLES:BOOL=ON
CMAKE_BUILD_TYPE:STRING=RELEASE
CMAKE_INSTALL_PREFIX:PATH=/usr/local
ENABLE_NEON:BOOL=ON
WITH_CUDA:BOOL=ON
CUDA_ARCH_BIN:STRING="3.2"
CUDA_ARCH_PTX:STRING="3.2"
I’m still not sure about the ARCH_BIN and ARCH_PTX numbers… the wiki for the nvidia says that 3.0 to 3.5 are acceptable. But, you know… I don’t know, it works… so, if it isn’t broke, as they say… http://en.wikipedia.org/wiki/Kepler_(microarchitecture)
After you do that, you have to build the whole thing, which could take about 1-2hrs.
make all
(optional) sudo make install
Note that if you perform ‘sudo make uninstall’… the guys at willow garage were nice enough to also output the file: build/install_manifest.txt which will give a list of all the files to uninstall after testing… if so curious, read the cmake.
That will fix you highgui.so issue to run your compiled sample against it. MY original issue was, how the heck do I compile an opencv sample with g++ and not get linker errors??? …and it turns out the answer was in the cmake also. Since, the gpu module is included there you can’t just run a command line compile on the samples unless you include the nvidia directory (and possibly the non-free stuff).
I think I’ve decided to just stick with make from here on out…