ubuntu 交叉编译 arm架构下的opencv

引言:

在arm架构的tx1上直接编译opencv速度太慢,而且有时候手头没有设备。更好的方式是在linux主机或者笔记本上交叉编译opencv,然后拷贝到arm设备上。

参考:
http://blog.csdn.net/herhero/article/details/50490096

Step1:安装交叉编译工具。下载地址:
github

Step2:

遇到问题:
mathinline.h:746: error: impossible constraint in 'asm' opencv
根据error提示,交叉编译工具使用了/usr/include下的文件编译。
解决方案:
在cmake-gui中设置include mode:search only in target root

遇到问题:
call of overloaded ‘abs(long long int&)’ is ambiguous
解决方案:

遇到问题:

/usr/include/eigen3/Eigen/src/Core/DenseStorage.h:450: error: 'nullptr' was not declared in this scope

原因:
nullptr是C++11引入的新特性,解决C和C++中NULL的定义不一致所带来的编译器兼容问题。见
http://blog.csdn.net/jay463261929/article/details/59108796 所以考虑使用最新版本的eigen
解决方案:
安装eigen,在 http://eigen.tuxfamily.org/index.php?title=Main_Page#Download 下载eigen

方法1:
解压,将 Eigen 拷贝到/usr/local/include/eigen3下
方法2cd eigensrcdir
mkdir build&&cd build
cmake .. -D CMAKE_INSTALL_PREFIX=/usr/local/include/eigen3
sudo make install

你可能感兴趣的:(ubuntu 交叉编译 arm架构下的opencv)