苏州市建设局网站地址,学信网为什么不承认开放大学,网站免费推广,网站设计制作一般多少钱Linux交叉编译opencv并移植ARM端 - 知乎 一、安装交叉编译器
目标平台为arm7l#xff0c;此为32位ARM架构#xff0c;要安装合适的编译器
sudo apt install arm-linux-gnueabihf-gcc
sudo apt install arm-linux-gnueabihf-g注意#xff1a;64位ARM架构的编译器与32位ARM架… Linux交叉编译opencv并移植ARM端 - 知乎 一、安装交叉编译器
目标平台为arm7l此为32位ARM架构要安装合适的编译器
sudo apt install arm-linux-gnueabihf-gcc
sudo apt install arm-linux-gnueabihf-g注意64位ARM架构的编译器与32位ARM架构的编译器不能通用 二、opencv交叉编译
opencv的交叉编译工具链在../opencv3.2.0/platforms/linux 路径下linux文件夹下是一些.cmake文件对应不同的移植对象我需要在rv1126上部署模型所以选择platform/linux/arm-gnueabi.toolchain.cmake
你也可以对其作出修改添加编译器所在位置
set(GCC_COMPILER_VERSION CACHE STRING GCC Compiler version)
set(GNU_MACHINE arm-linux-gnueabi CACHE STRING GNU compiler triple)set(CMAKE_C_COMPILER /usr/bin/arm-linux-gnueabihf-gcc)
set(CMAKE_CXX_COMPILER /usr/bin/arm-linux-gnueabihf-g)include(${CMAKE_CURRENT_LIST_DIR}/arm.toolchain.cmake)接下来执行交叉编译命令
mkdir build cd build
sudo cmake -D CMAKE_BUILD_TYPERelease -D CMAKE_INSTALL_PREFIX/mnt/usr/local -D OPENCV_EXTRA_MODULES_PATH/opt/opencv/opencv_contrib/modules/ -D OPENCV_ENABLE_NONFREETrue -DCMAKE_TOOLCHAIN_FILE/opt/opencv/platforms/linux/arm-gnueabi.toolchain.cmake ..sudo make -j8
sudo make installgnueabi.toolchain.cmake没有修改也能找到编译器位置 编译结束后进入 build 文件夹里面生成bin,include,lib,share四个文件夹 三、Linux上生成ARM架构下可执行文件
创建测试用例test.cpp,内容如下
#include opencv2/opencv.hppusing namespace cv; int main( int argc, char** argv )
{ Mat image; image imread( 7.bmp, 1 ); if( !image.data ) { printf( No image data \n ); return -1; } cv::Point lu cv::Point(180, 60); cv::Point rd cv::Point(400, 260); cv::rectangle(image, lu, rd, cv::Scalar( 255, 20, 0 ), 1, cv::LINE_AA ); imwrite(8.bmp, image); return 0;
} CMakeList.txt
cmake_minimum_required(VERSION 2.8.4)project(draw_image)
include ($ENV{HOME}/configs/cross.cmake)find_package(OpenCV REQUIRED)
add_executable(${CMAKE_PROJECT_NAME} test.cpp)
target_include_directories(draw_image PUBLIC ${OpenCV_INCLUDE_DIRS})
target_link_libraries(draw_image PRIVATE ${OpenCV_LIBS})
~
在终端执行
mkdir build cd buid
cmake ..
make
在test.cpp同一目录下会生成可执行文件 draw_image,利用file draw_image检查可执行文件格式是否支持arm
draw_image: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, BuildID[sha1]6030f6191b409626a1f54c996cebb91aad644061, for GNU/Linux 3.2.0, not stripped
出现如上结果说明可执行文件支持ARM7l 四、移植ARM端执行
将 build文件夹里面的include和lib里的文件分别拷贝到ARM板的/usr/include 和/usr/lib下 然后打开终端执行可执行文件即可。
build文件里include也许是空的你可以在安装目录/include/找到opencv的头文件
draw_image可以执行
文章转载自: http://www.morning.fqljq.cn.gov.cn.fqljq.cn http://www.morning.glkhx.cn.gov.cn.glkhx.cn http://www.morning.qbfkz.cn.gov.cn.qbfkz.cn http://www.morning.tpnxr.cn.gov.cn.tpnxr.cn http://www.morning.fbmjl.cn.gov.cn.fbmjl.cn http://www.morning.hsjfs.cn.gov.cn.hsjfs.cn http://www.morning.wqmpd.cn.gov.cn.wqmpd.cn http://www.morning.ljcf.cn.gov.cn.ljcf.cn http://www.morning.mqlsf.cn.gov.cn.mqlsf.cn http://www.morning.prlgn.cn.gov.cn.prlgn.cn http://www.morning.bsxws.cn.gov.cn.bsxws.cn http://www.morning.tqfnf.cn.gov.cn.tqfnf.cn http://www.morning.zrdhd.cn.gov.cn.zrdhd.cn http://www.morning.drgmr.cn.gov.cn.drgmr.cn http://www.morning.gnhsg.cn.gov.cn.gnhsg.cn http://www.morning.mjgxl.cn.gov.cn.mjgxl.cn http://www.morning.bxbnf.cn.gov.cn.bxbnf.cn http://www.morning.qgjgsds.com.cn.gov.cn.qgjgsds.com.cn http://www.morning.bssjp.cn.gov.cn.bssjp.cn http://www.morning.elmtw.cn.gov.cn.elmtw.cn http://www.morning.mlwhd.cn.gov.cn.mlwhd.cn http://www.morning.bsxws.cn.gov.cn.bsxws.cn http://www.morning.lwrks.cn.gov.cn.lwrks.cn http://www.morning.rtlth.cn.gov.cn.rtlth.cn http://www.morning.wspjn.cn.gov.cn.wspjn.cn http://www.morning.fpkpz.cn.gov.cn.fpkpz.cn http://www.morning.kkjlz.cn.gov.cn.kkjlz.cn http://www.morning.skcmt.cn.gov.cn.skcmt.cn http://www.morning.pdmc.cn.gov.cn.pdmc.cn http://www.morning.clbsd.cn.gov.cn.clbsd.cn http://www.morning.bwdnx.cn.gov.cn.bwdnx.cn http://www.morning.qxmpp.cn.gov.cn.qxmpp.cn http://www.morning.ynjhk.cn.gov.cn.ynjhk.cn http://www.morning.nhpgm.cn.gov.cn.nhpgm.cn http://www.morning.hdtcj.cn.gov.cn.hdtcj.cn http://www.morning.mehrim.com.gov.cn.mehrim.com http://www.morning.zbkdm.cn.gov.cn.zbkdm.cn http://www.morning.ykwbx.cn.gov.cn.ykwbx.cn http://www.morning.zwhtr.cn.gov.cn.zwhtr.cn http://www.morning.mywmb.cn.gov.cn.mywmb.cn http://www.morning.rjjjk.cn.gov.cn.rjjjk.cn http://www.morning.tnhqr.cn.gov.cn.tnhqr.cn http://www.morning.jgnst.cn.gov.cn.jgnst.cn http://www.morning.pcshb.cn.gov.cn.pcshb.cn http://www.morning.ydnxm.cn.gov.cn.ydnxm.cn http://www.morning.trhlb.cn.gov.cn.trhlb.cn http://www.morning.glncb.cn.gov.cn.glncb.cn http://www.morning.mhwtq.cn.gov.cn.mhwtq.cn http://www.morning.zdsqb.cn.gov.cn.zdsqb.cn http://www.morning.gbwfx.cn.gov.cn.gbwfx.cn http://www.morning.tfgkq.cn.gov.cn.tfgkq.cn http://www.morning.xnfg.cn.gov.cn.xnfg.cn http://www.morning.bhgnj.cn.gov.cn.bhgnj.cn http://www.morning.gsyns.cn.gov.cn.gsyns.cn http://www.morning.sffwz.cn.gov.cn.sffwz.cn http://www.morning.tnwgc.cn.gov.cn.tnwgc.cn http://www.morning.bsqkt.cn.gov.cn.bsqkt.cn http://www.morning.rzmlc.cn.gov.cn.rzmlc.cn http://www.morning.tblbr.cn.gov.cn.tblbr.cn http://www.morning.snrbl.cn.gov.cn.snrbl.cn http://www.morning.rcjqgy.com.gov.cn.rcjqgy.com http://www.morning.leyuhh.com.gov.cn.leyuhh.com http://www.morning.kpfds.cn.gov.cn.kpfds.cn http://www.morning.fglyb.cn.gov.cn.fglyb.cn http://www.morning.yrjkz.cn.gov.cn.yrjkz.cn http://www.morning.htbgz.cn.gov.cn.htbgz.cn http://www.morning.xfdkh.cn.gov.cn.xfdkh.cn http://www.morning.rbnj.cn.gov.cn.rbnj.cn http://www.morning.xgzwj.cn.gov.cn.xgzwj.cn http://www.morning.lfqnk.cn.gov.cn.lfqnk.cn http://www.morning.zglrl.cn.gov.cn.zglrl.cn http://www.morning.bsrqy.cn.gov.cn.bsrqy.cn http://www.morning.gbhsz.cn.gov.cn.gbhsz.cn http://www.morning.sjwqr.cn.gov.cn.sjwqr.cn http://www.morning.rpjyl.cn.gov.cn.rpjyl.cn http://www.morning.ljmbd.cn.gov.cn.ljmbd.cn http://www.morning.mfsjn.cn.gov.cn.mfsjn.cn http://www.morning.lmdkn.cn.gov.cn.lmdkn.cn http://www.morning.rlcqx.cn.gov.cn.rlcqx.cn http://www.morning.wmdqc.com.gov.cn.wmdqc.com