OpenCV 2.2以后版本需要使用Cmake生成makefile文件,因此需要先安装cmake。
ubuntu下安装cmake比较简单,
apt-get install cmake
如果觉得自带的版本不符合要求,可以下载安装包。
下载最新版的安装包:
http://www.cmake.org/cmake/resources/software.html
这里下载已经编译好的,这样只需要解压至需要的目录下即可使用:
tar zxvf cmake-2.8.10.2-Linux-i386.tar.gz –C /usr/local/
设置环境变量:
sudo gedit /home/emouse/.bashrc
在打开的文件后添加:
export PATH=$PATH:/usr/local/cmake-2.8.10.2-Linux-i386/bin
查看版本,测试是否安装成功:
root@emouse:/home# cmake --version
解压OpenCV压缩文件,得到文件夹。
#cmake-gui 打开cmake的gui界面,开始进行配置,配置过程如下图所示:
首先电脑得先安装arm-linux的交叉编译环境,这里就不介绍这个了,直接说重点。
1、在终端窗口输入sudo apt-get install cmake-qt-gui下载cmake图形界面
2、安装好后在终端窗口输入cmake-gui打开cmake的gui界面
3、在“where is the source code”中填入电脑中opencv源码的位置,“where to build the binaries”填入生成make编译文件的位置,然后点击configure按钮
4、选择最后一项
5、点击NEXT再跳出的界面中做如下设置
Operating System 选择目标系统Linux
Compilers中选择交叉编译器的gcc和g++
这里注意选择用什么编译,根据不同的编译选择编译命令的路径。
我是使用的arm-oe-linux-gnueabi来编译,找到编译器的安装路径:/usr/local/oecore-i586/sysroots/i586-oesdk-linux/usr/bin/cortexa9hf-vfp-neon-oe-linux-gnueabi/
gcc:/usr/local/oecore-i586/sysroots/i586-oesdk-linux/usr/bin/cortexa9hf-vfp-neon-oe-linux-gnueabi/arm-oe-linux-gnueabi-gcc
g++:/usr/local/oecore-i586/sysroots/i586-oesdk-linux/usr/bin/cortexa9hf-vfp-neon-oe-linux-gnueabi/arm-oe-linux-gnueabi-g++
Target Root选择交叉编译器的路径:/usr/local/arm-linux/arm-oe-linux-gnueabi/
include Mode选择Search only in Target Root
6、点击Finish按钮,开始生成配置文件,但是这个时候会报错。
CMake Error at cmake/FindCUDA.cmake:763 (if):
if given arguments:
"CUDA_VERSION" "VERSION_GREATER" "5.0" "AND" "CMAKE_CROSSCOMPILING" "AND" "MATCHES" "arm"
Unknown arguments specified
Call Stack (most recent call first):
cmake/OpenCVDetectCUDA.cmake:26 (find_package)
cmake/OpenCVFindLibsPerf.cmake:24 (include)
CMakeLists.txt:468 (include)
应该是我的电脑里没有安装CUDA的库,因为后面的开发中也不会用到CUDA,所以我将 WITH_CUDA的钩去掉,然后再点击一次Configure按钮,看看还有没有提示缺少哪些第三方库,网上其他文章说WITH_TIFF要去掉,但是这里没有报错就不管它了。
7、同时可以将CMAKE_INSTALL_PREFIX和CMAKE_FIND_ROOT_PATH改成你想要的路径,这个路径是opencv最后库文件和头文件的安装路径。确认在不存在其他问题后点击Generate生存Makefile文件,如果前面第三方的问题没有解决这里是会报错而无法生存Makefile。生成的Makefile文件和Cmake配置文件都在 Wher to build the binarier 中设置的文件夹下