下面的文字比较多啊,主要是加入了很多自己的感慨啊,感叹啊啥的,其实我觉得已经是罪简单的方法了,我基本上把我遇到的问题全部罗列了,大家可以参考一下~其实很多问题都是在走弯路,我希望后面的人更顺畅一点吧~
目的:将OpenCV2.0或者2.1+Qt移植到ARM上
目标板Tiny6410
PC系统VM1.2+Fedora9(用这个吧,方便)
1. Fedora安装
Fedora9的包不容易下,不过我忘了我怎么下的···迅雷貌似可以。
我使用的虚拟机,注意必须要高于1.2的版本,只有他们才里面有Fedora的支持。比较方便。就按照提示一步一步走就行了,建议给的空间大一点,默认是20G,给个40G没问题。
第一个要解决的问题就是虚拟机和PC机的文件拷贝,大家可以参考网上的很多经验,不要用VM tools,我发现传输文件的时候它基本上传输不完全,我用的是网络连接,有两种,在VM的设置里可以找到,安装Fedora的时候也会问你选择Bridge还是NAT,我刚开始用的前者,但后来突然又用不了了,就把VM设置里的改为了NAT,就可以了,至于具体的设置,友善的Fedora安装文档里有。
我使用Fedora的一个巨大的bug就是它居然只给我的根目录留下了不到一个1G的空间,因为后面要求大部分软件都安装在/opt下,所以没地方!!!!而我的/home文件夹下居然有38个G····我擦! 如果你碰到了这个,那告诉你,节约点用吧,还够用的其实。~ 别听教程的把很多软件包都复制到/opt下就可以了,放自己的/home下吧~tar的时候改个源路径就可以了 ~但是目标路径按照手册别变啊!!!
2. arm-linux-gcc安装
我用的是arm-linux-gcc-4.5.1(友善之臂光盘里有),各种版本基本上都尝试过,网上建议在编译Qt时用4.1.2版本,我没下载到。安装方法:
将安装包用sd卡复制到自己的任何目录下,注意我们用的是友善之臂提供的安装包,所以它里面有自己设计的路径,这个非常重要,不能错,它指定安装在/opt下,我们要做的也很简单,只需要将其解压到根目录下,它就可以自动安装到正确的目录。
建议用root用户登录,方便!!!
可以直接双击安装包打开,安装到根目录下,解压完检查一下是不是
/opt/FriendlyARM/。。。。
这个目录下。然后在PATH路径中加入该安装路径,方法有两种,一种是修改root的/root/.bashrc文件,用gedit打开,或者修改/etc/profile文件,都行,在其中加入
export PATH=你的安装目录(应该为/opt/FriendlyARM/。。。。/bin):$PATH
即可,修改前者的话可能要logout重新登录一下,后者用
source /etc/profile
命令即可。
3. OpenCV移植
移植过2.0和2.1两个版本,应该都问题,问题是路径的设置。
l 2.0是用configure配置,网上有方法,我用的这个网址上的配置,具体为
./configure --host=arm-linux --without-carbon --without-quicktime --without-1394libs --without-ffmpeg --without-Python --without-swig --without-gtk --enable-static --disable-shared --disable-apps
没有指定安装路径,全部都安装在/usr/local/下,也可以指定安装路径,见
l 2.1可以用CMAKE配置,我用的版本是cmake-2.8.4-Linux-i386.tar.tz,网上比较容易下载。
在第一次点configure的时候注意选择第三个选项,然后就可以安装网站说的配置了。
Ø 配置后输入make(时间约15分钟),用第二个网站的方法会中途出现错误,自己修改一下文件在make一下就可以了
之后输入make install(很快),就可以在安装路径下找到你的文件了。
如果要在X86上用OpenCV,那么就不能用上面的方法,因为上面都是为了编译用到ARM上的库,但是稍微修改方法也可以生成X86的库。可以参考
将编译好的库用sd卡拷到6410的/lib下即可,如果运行有问题(opencv的错误运行时一般会给出让你知道是什么的错误),可以将文件放到和你PC机上目录路径相同的地方。
注意一点:
6410的linux不支持OpenCV自己的Highgui,所以不能在目标板上使用cvNameWidow(),cvWaitKey(),cvShowImage()等显示函数,但是可以利用里面的cvLoad()等函数。正因为如此,安装支持OpenCV的GTK相当复杂,我们选择用Qt来显示。
4. Qt安装