Ubuntu16.04下编译OpenCV3.0.0

来源:互联网 发布:php淘宝短网址还原 编辑:程序博客网 时间:2024/05/20 01:09

目录

  • 目录
  • 前言
  • cmake-gui安装过程
  • CMake编译OpenCV300

前言

原来在海思上使用的是OpenCV2.4.9版本,现在需要在odroid上编译OpenCV3.0.0版本,特此记录!

cmake-gui安装过程

  • 安装cmake-gui:sudo apt-get install cmake-gui
  • 从github上下载OpenCV3.0.0的源码,然后解压,进入到opencv3.0.0目录下,建立一个build和output目录
mkdir buildmkdir output
  • 打开cmake-gui,
    1. 执行cmake-gui
  • 出现如下界面:
    Cmake界面
  • 点击Browse Source选择刚刚解压的opencv3.0.0目录
  • 点击Browse Build选择刚刚建立的opencv3.0.0/build目录
  • 点击configure,此时出现对话框:
    configure
  • 选择Specify options for cross-compilingnext
  • 在Operating System填写arm-linux-gnueabihf
    C填写arm-linux-gnueabihf-gcc
    C++填写arm-linux-gnueabihf-g++
  • 点击configure,直到出现Configuration done
    在出现的列表中,search对应的文本框中输入CMAKE_INSTALL_PREFIX,修改为自己的output目录,我的目录是/odroid/opencv3.0.0/output-odroid,如下:
    search
  • Generate——->Generation done,即可关闭cmake软件
  • make
    出现错误1:
make[2]: *** [3rdparty/libpng/CMakeFiles/libpng.dir/png.c.obj] Error 1CMakeFiles/Makefile2:601: recipe for target '3rdparty/libpng/CMakeFiles/libpng.dir/all' failedmake[1]: *** [3rdparty/libpng/CMakeFiles/libpng.dir/all] Error 2Makefile:160: recipe for target 'all' failedmake: *** [all] Error 2

解决方法1:
没有找到好的办法,或许还是要上google,英文水平太菜,感谢hlr大神带路,所以直接用cmake的方法编译。


CMake编译OpenCV3.0.0

  1. 解压OpenCV3.0.0的库
  2. 进入OpenCV3.0.0的库下,在platforms/linux/arm-gnueabi.toolchain.cmake中找到:
find_program(CMAKE_C_COMPILER NAMES arm-linux-gnueabi${FLOAT_ABI_SUFFIX}-gcc-${GCC_COMPILER_VERSION})find_program(CMAKE_C_COMPILER NAMES arm-linux-gnueabi${FLOAT_ABI_SUFFIX}-g++-${GCC_COMPILER_VERSION})

修改为:

find_program(CMAKE_C_COMPILER NAMES arm-linux-gnueabihf-gcc)find_program(CMAKE_CXX_COMPILER NAMES arm-linux-gnueabihf-g++)
  1. 创建**build-odroid,进入**build-odroid,执行如下命令:
cmake -D CMAKE_TOOLCHAIN_FILE=./platforms/linux/arm-gnueabi.toolchain.cmake -DCMAKE_BUILD_TYPE=RELEASE -D WITH_TBB=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_OPENGL=ON -DWITH_IPP=OFF ..
  1. make -j4
    问题1:
Linking C static library ../lib/libzlib.aError running link command: No such file or directorymake[2]: *** [3rdparty/lib/libzlib.a] Error 2

解决办法:
进入build-odroid目录下的CMakeFiles/3.5.1/CMakeCCompiler.cmake,修改set(CMAKE_AR "CMAKE_AR-NOTFOUND")set(CMAKE_AR "/opt/odroid-arm-4.9-toolchains/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/bin/arm-linux-gnueabihf-ar")
5. make install

总结:遇到问题却没有解决问题,这样对自己很不好,我会记住在我的博客里有这样一个错误,希望以后能够花时间解决。当然,看到博客的亲们,如果有好的解决方法,不吝赐教,万分感谢!

原创粉丝点击