最近移植 一个比较复杂的程序 到 ARM 平台, 这个程序的 依赖比较多, 最麻烦的一个依赖是opencv, 因为 opencv本身有不少依赖!
参考了 网上一些博客, 碰到的坑倒不算多
比较特别的一点事, 使用 cmake-gui, 选择交叉编译,这个功能以前还没用过,然后选择针对ARM平台的编译器
以 opencv-3.2.0 为例, 有的博客说 先要把 jpeg/zlib 之类的依赖的源码都下载下来,编译好,再编译 opencv, 后来发现其实没必要,opencv已经把这些依赖的源码放在 ThridParty 目录下了,使用cmake-gui把 with jpeg , with zib这些选项选上,就表示 编译 ThridParty下的这些第三方库源码,而不是 直接去 主机上查找 现有的 so 库文件。大大简化了工作量。
还一个别的文章没提到的问题是, 链接这些第三方库时 报关于 fPIC的错误, 这个是因为 这些第三方库源码下的 CMakeLists.txt中 关于 fPIC的选项没有激活,里面有个条件判断没有生效。直接把 fPIC这个选项弄成无条件直接就OK了。
碰到的其他问题 好像网上其他博客都有说。
不用cmake-gui的话 参考 https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842363/OpenCV+Installation