转自:http://blog.csdn.net/luotuo44/article/details/8958990
下载arm-linux-gcc-4.3.2.tgz。然后使用#tar -zxvf arm-linux-gcc-4.3.2.tgz -C /命令解压。可以看到其已经被解压到/usr/local/arm/4.3.2目录下了。使用命令#vim /etc/bash.bashrc打开文件进行配置。在最后一行输入下面一句:
export PATH=$PATH:/usr/local/arm/4.3.2/bin
保存并退出。打开一个新终端或者在本终端输入 #source /etc/bash.bashrc使得配置信息生效。原理可以查看博文《/etc/profile、/etc/bash.bahsrc、~/.profile、~/.bashrc的用途》
输入命令$cmake-gui后,会出现下面的提示,尚未安装cmake-gui,即没有安装图形界面。
用其提示的命令安装即可 $sudo apt-get install cmake-qt-gui。安装过程需要联网。
到http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/下载安装opencv。自己选一个版本。我使用的是2.40。
下载完成后,把文件解压到/root/download目录下。
切换到root用户(要使用root权限运行cmake-gui)。
1)输入#cmake-gui 打开cmake的图形界面。在cmake的图形界面中输入OpenCV的源代码的所在路径和要安装的地点。如下图所示。
2)点击”Configure”按钮,如果还没arm-opencv目录,那么会提示新建之。点击”yes”即可。然后弹出下面的对话框。如下面那样选择。然后点击”Next”
3)弹出新的对话框,需要填充的信息如下:
4)点击Finish后,cmake就自动开始工作。
等其停止工作后,会出现下图那样,红了一片。
这里要更改一些东西。
勾上 BUILD_JPEG、BUILD_PNG。如果没有安装tiff,那么取消下面的打勾。
如果想生成静态库,那么就要取消BUILD_SHARED_LIBS的打勾。
如果想生成Debug版本的库文件,那么就要找到CMAKE_BUILD_TYPE选项,改成下图。好像是大小写敏感的,不能写成DEBUG。
除了Debug和Release,还有其他编译类型,这些编译类型会对应不同的编译优化级别。这里还可以看到CMake其他一些选项的意义。
其他的看情况勾选。
找到
把后面的值改成 /usr/local/arm-opencv 如下图所示:
配置完成。
再次点击Configure。如下图所示,可以看到没有了红色。(如果还有,继续按Configure)
现在点击“Generate”按钮,产生Makefile文件。
输入命令#cd /usr/local/arm-opencv进入到opencv的安装目录下。输入#vim CMakeCache.txt命令,修改该文件。
在
加上-lpthread –lrt 变成
保存并退出。
代码:CMAKE_EXE_LINKER_FLAGS:STRING=-lpthread -lrt -ldl
再在终端输入#make命令,编译。这个过程要很久时间,目测有20分钟。
接着运行#make install 命令开始安装
到这里就安装完毕了。
原理可以参考博文《pkg-config的一些用法》和《Linux静态库和动态库的使用》。
在arm-opencv目录下,输入#mkdir pkgconfig命令新建一个目录pkgconfig, 新建完后,进入这个目录。在这个目录里面输入#vim arm-opencv.pc创建并编辑文件。编辑这个文件,如下图所示。其中,最后一行是/usr/local/arm-opencv/lib目录里面的所有动态链接库。
代码:
#include <cv.h> #include <highgui.h> #include <iostream> using namespace std; int main(int argc, char *argr[]) { IplImage *image = cvLoadImage("1.jpg"); if(image == NULL) { cout<<"Load image fail" << endl; return -1; } cvNamedWindow("src", 1); cvShowImage("src", image); cvWaitKey(); cvDestroyWindow("src"); cvReleaseImage(&image); return 0; }
编辑/etc/bash.bashrc文件。使用命令#vim /etc/bash.bashrc。在最后一行加入
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/arm-opencv/pkgconfig
Export PKG_CONFIG_PATH
输入 #source /etc/bash.bashrc 这个配置信息就可以用了。或者打开一个新终端,也可以使用到该配置信息。
创建并编辑一个test.cpp文件
保存,退出后,输入下面命令进行编译
#arm-linux-g++ `pkg-config --cflags arm-opencv` `pkg-config –libs arm-opencv` test.cpp -lpthread –lrt –o test
以后编译arm板的OpenCV代码时,要使用上面的编译指令。其中` 符号不是逗号,而是1 左边的那个符号。而把编译好的程序放到arm板时,在运行时,还要把/usr/local/arm-opencv/lib目录下的所有.so文件都拷贝到arm的/usr/lib或者/lib目录下。原理可以参考《Linux静态库和动态库的使用》。
另外, Linux环境下的OpenCV安装,可以参考:http://blog.csdn.net/luotuo44/article/details/8909258
Windows环境下的OpenCV安装,可以参考:http://blog.csdn.net/luotuo44/article/details/8903508