概述
Hi3516DV300 Cmake工程建立教程
- 一、准备事项
- 二、建立基本的Cmake工程
- 三、提取SDK完善Cmake工程
- 四、编译与调试
- 五、总结
一、准备事项
1.以默认路径安装交叉编译器arm-himix200-linux.
2.解压SDK Hi3516CV500_SDK_V2.0.2.0.
3.板子运行程序前需加载好驱动。
二、建立基本的Cmake工程
如下图所示,建立基本的Cmake工程。
1.bin目录用于放编译生成的可执行文件。
2.build目录用于编译。
3.include目录用于放SDK的头文件。
4.lib目录用于放库文件。
5.src目录则用于放SDK的.c文件。
6.CMakeLists.txt为Cmake文件。
三、提取SDK完善Cmake工程
以编译sample vio为例完善Cmake工程。
1.添加头文件、库文件、以及common目录和sample/vio目录下的文件
注意:如果代码存在目录文件夹的,需要复制出来,include以及src目录下不放其他文件夹。
添加文件之后的Cmake工程如下图所示。
2.编写CMakeLists.txt文件
工程目录下的CMakeLists.txt
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
SET(CMAKE_SYSTEM_NAME Linux)
SET(CMAKE_SYSTEM_PROCESSOR arm)
SET(TOOLCHAIN_DIR /opt/hisi-linux/x86-arm/arm-himix200-linux)
SET(CMAKE_C_COMPILER /opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-gcc)
SET(CMAKE_CXX_COMPILER /opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-g++)
SET(CMAKE_FIND_ROOT_PATH ${TOOLCHAIN_DIR}
${TOOLCHAIN_DIR}/arm-himix200-linux/include
${TOOLCHAIN_DIR}/arm-himix200-linux/lib )
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
PROJECT(Hi3516CV500_SDK_V2.0.2.0_MPP_Sample)
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ")
INCLUDE_DIRECTORIES(include)
add_subdirectory(src)
src目录下的CMakeLists.txt
aux_source_directory (. SRC_LIST)
add_executable (EXEC_MPP_SAMPLE ${SRC_LIST})
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/bin)
LINK_DIRECTORIES(${PROJECT_SOURCE_DIR}/lib)
target_link_libraries(EXEC_MPP_SAMPLE pthread dl m)
3.提取MPP编译参数
修改Hi3516CV500_SDK_V2.0.2.0/smp/a7_linux/mpp/sample/smp_linux.mak文件。
添加4个echo将sample的编译参数提取出来。
编译sample即可提取编译参数。
提取CFLAGS
提取编译的库链接顺序
4.使用编译参数完善CMakeLists.txt文件
给工程目录下的CMakeLists.txt添加CFLAGS。
给src目录下的CMakeLists.txt添加链接库。
四、编译与调试
进入build目录进行编译与调试Cmake工程。
cmake ..用于生成Makefile文件
生成Makefile之后在build目录进行编译。
报错找不到audio_aac_adp.h文件,将SDK audio/adp目录下的文件复制到Cmake工程include和src目录。
Hi3516CV500_SDK_V2.0.2.0/smp/a7_linux/mpp/sample/audio/adp
报错找不到VGS相关函数,修改库的链接顺序,将libmpi放到lib_hiawb之后。
报错找不到MP3的相关函数,删除MP3相关的文件audio_mp3_adp.c/audio_mp3_adp.h/mp3dec.h,根据audio目录下的可知,mp3相关的库需要从Android P的源码中拷贝,暂时不添加MP3的代码。
删除MP3相关的文件需要删除build目录下的文件,重新生成Makefile。
rm * -rf
cmake ..
报错找不到MP3的头文件和定义,则屏蔽相关代码。
编译成功,同时在bin目录下生成可执行文件EXEC_MPP_SAMPLE。
将EXEC_MPP_SAMPLE复制到板子上即可运行。
五、总结
本教程将SDK的MPP代码重新建立Cmake工程,可以脱离SDK单独进行开发,大大提高了开发便捷性。不过,本教程是基于sample vio建立的Cmake工程,编译其他sample时可能会出现报错,需要额外处理错误信息。后续可能会在此基础上添加FB相关功能,相关更新会在git代码进行。CSDN积分多的小伙伴可以点击下CSDN下载地址下载。
本教程git地址
本教程文件CSDN下载地址
最后
以上就是俊逸天空为你收集整理的Hi3516DV300 Cmake工程建立教程一、准备事项二、建立基本的Cmake工程三、提取SDK完善Cmake工程四、编译与调试五、总结的全部内容,希望文章能够帮你解决Hi3516DV300 Cmake工程建立教程一、准备事项二、建立基本的Cmake工程三、提取SDK完善Cmake工程四、编译与调试五、总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复