Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
交叉编译OpenCV与CMake for Ubuntu_Opencv_Cmake_Pandaboard - Fatal编程技术网

交叉编译OpenCV与CMake for Ubuntu

交叉编译OpenCV与CMake for Ubuntu,opencv,cmake,pandaboard,Opencv,Cmake,Pandaboard,我(在Ubuntu主机上)在Qt Creator中编写了一个简单的OpenCV应用程序(从Logitech Webcam Pro 9000打开视频流)。在修复了ffmepeg、x264、gstreamer等(在上找到)的问题(CMake没有找到)后,应用程序开始工作 现在我想用CMake for Pandorn(Ubuntu)交叉编译OpenCV,将其与交叉编译的Qt应用程序结合使用(就像在主机上一样)。 按下配置按钮后,我得到这个输出。 除了这个问题,我不知道如何在CMake中编写“交叉编译

我(在Ubuntu主机上)在Qt Creator中编写了一个简单的OpenCV应用程序(从Logitech Webcam Pro 9000打开视频流)。在修复了ffmepeg、x264、gstreamer等(在上找到)的问题(CMake没有找到)后,应用程序开始工作

现在我想用CMake for Pandorn(Ubuntu)交叉编译OpenCV,将其与交叉编译的Qt应用程序结合使用(就像在主机上一样)。 按下配置按钮后,我得到这个输出。

除了这个问题,我不知道如何在CMake中编写“交叉编译的工具链文件”和/或“指定交叉编译的选项”,我害怕修复ffmpeg等的问题(比如在主机上)? 对于主机,我有一个很好的HOWTO(来自ozbotz),但是如何处理它以进行pandorn的交叉编译呢


有人对这些问题有经验/想法吗?

要将Opencv for Pandorn与主机ubuntu pc交叉编译,请执行以下步骤:

  • 安装交叉编译工具 在ubuntu上,只需在终端中输入以下内容即可:

    sudo-apt-get-install-gcc-arm-linux-gnueabihf

    • 获取opencv源代码并准备构建

      mkdir opencv
      cd opencv
      git克隆https://github.com/Itseez/opencv.git
      cd opencv母版
      mkdir构建
      cd构建

    • 编辑Cmake变量,告诉它使用交叉编译器。
      gedit../platforms/linux/arm-gnueabi.toolchain.cmake

      在文件中的适当位置添加以下行:
      set(CMAKE_C_编译器gcc arm linux gnueabihf)
      set(CMAKE_CXX_编译器g++-arm linux gnueabihf)

      如果需要,请设置其他C_标志:
      set(CMAKE_C_标志“-mcpu=cortex-a8-O3-mfloat abi=hard-ftree向量化-ftree向量化器verbose=9“缓存字符串”C标志”)

    • 运行cmake:
      cmake-DCMAKE_TOOLCHAIN_FILE=../platforms/linux/arm-gnueabi.TOOLCHAIN.cmake../

    • make

gcc arm linux gnueabihf安装的二进制文件似乎已更改为arm linux gnueabihf gcc。类似地,g++二进制文件现在似乎是arm-linux-gnueabihf-g++。要获得g++编译器,我还需要apt get install g++-arm-linux-gnueabihf。使用“which arm-linux-gnueabihf-gcc”和“which arm-linux-gnueabihf-g++”查找二进制文件并确认它们已正确安装。不确定为什么cmake脚本需要gcc和g++,但我需要安装这两个脚本才能使默认的cmake脚本正常工作。我们最终使用了apt get python opencv,它已经为arm(Pandorn)构建了二进制文件。