RV1126学习笔记 根据rkmedia搭建自己的Cmake编译环境

完整编译SDK包

型号:A191-EB-RV1126 摄像头:gc2053
首先是根据出厂开发手册,在ubuntu上面把RK平台的SDK包完整的编译出来烧录进板子,并且编译出对应的可执行文件,丢到板子上面验证可以运行后再往下一步走。
要注意的地方是,sdk包默认的设备树不是用的gc2053摄像头的,所以需要修改对应的摄像头设备,例如我的gc2053,
参考博文如下:
https://www.ebaina.com/articles/140000014940

这里不讲怎么安装Cmake以及Cmake的应用,网上这类的博文很多,需要自行去搭建
在这里插入图片描述
最终可以找到Cmake版本号就可以了

分享一个Cmake API查询网页:
https://cmake.org/cmake/help/v3.0/manual/cmake-commands.7.html

CMakeLists.txt

创建rv1126 Cmake最主要的是找到对应库文件和头文件,以及交叉编译链等等

c++交叉编译链的路径:xxx/RV1126_RV1109_LINUX_SDK_V2.2.5.1_20230530/buildroot/output/rockchip_rv1126_rv1109_spi_nand/host/bin/arm-linux-gnueabihf-g++

c交叉编译链的路径:xxx/RV1126_RV1109_LINUX_SDK_V2.2.5.1_20230530/buildroot/output/rockchip_rv1126_rv1109_spi_nand/host/bin/arm-linux-gnueabihf-gcc

相关头文件的路径:xxx/RV1126_RV1109_LINUX_SDK_V2.2.5.1_20230530/buildroot/output/rockchip_rv1126_rv1109_spi_nand/host/arm-buildroot-linux-gnueabihf/sysroot

编译后生成的库文件都是在:xxx//RV1126_RV1109_LINUX_SDK_V2.2.5.1_20230530/buildroot/oem/usr/lib

然后如果用到其他的头文件或者库文件之类的,可以自行去配置,例如我用到了freetype,sdl,sdl_ttf之类的,也是要用到对应的交叉编译链

下面贴上我的CMakeLists.txt 这里参考了一下rkmeida里面的生成example时用到的CMakeLists.txt,可以去参考下理解下对应意思。

cmake_minimum_required(VERSION 3.18)
project(rkmedia_vi_venc_test)

set(CMAKE_CXX_COMPILER /home/lin-x/MyProject/host/bin/arm-linux-gnueabihf-g++)
set(CMAKE_C_COMPILER /home/lin-x/MyProject/host/bin/arm-linux-gnueabihf-gcc)

add_definitions(-g -O0 -ggdb -gdwarf -funwind-tables -rdynamic)

include_directories(/home/lin-x/MyProject/include/Common)
include_directories(/home/lin-x/MyProject/include/RV1126/easymedia)
include_directories(/home/lin-x/MyProject/include/Common/rkmedia)
include_directories(/home/lin-x/MyProject/include/Common/freetype2)
include_directories(/home/lin-x/MyProject/include/Common/SDL)

link_directories(${PROJECT_SOURCE_DIR}/librtsp/)
set(THIRD_MEDIA ${CMAKE_CURRENT_LIST_DIR}/libs/RV1126/libthird_media.so)  
set(FREETYPE ${CMAKE_CURRENT_LIST_DIR}/libs/Common/libfreetype.so.6.17.0)
set(SDL ${CMAKE_CURRENT_LIST_DIR}/libs/Common/libSDL.so)
set(SDL_TTF ${CMAKE_CURRENT_LIST_DIR}/libs/Common/libSDL_ttf.so)

set(SOURCEFILES MyRKProjetc_Rtsp.c)
set(LINKFILES /home/lin-x/MyProject/src/Common/sample_common_isp.c /home/lin-x/MyProject/src/Common/BMP_API.c)
set(LINKFREETYPE )
set(TARGETFILES MyRKProjetc_Rtsp)

add_executable(${TARGETFILES} ${SOURCEFILES} ${LINKFILES} )

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}  -DRKAIQ")

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --sysroot=/home/lin-x/MyProject/host/arm-buildroot-linux-gnueabihf/sysroot")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I./include/rkmedia")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I./include/easymedia")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I./include/Common")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I/home/lin-x/MyProject/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/rkaiq/common")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I/home/lin-x/MyProject/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/rkaiq/xcore")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I/home/lin-x/MyProject/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/rkaiq/uAPI")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I/home/lin-x/MyProject/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/rkaiq/algos")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I/home/lin-x/MyProject/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/rkaiq/iq_parser")

set(LIB_FILES "")
set(LD_FLAGS -leasymedia -ldrm -lrockchip_mpp -lpthread -lasound -lRKAP_3A -lRKAP_ANR -lRKAP_Common -lv4l2 -lv4lconvert -lrga -lrknn_api -lrockface -lsqlite3 -lmd_share -lod_share -lrkaiq -lfreetype -lSDL -lSDL_ttf)

target_link_directories(MyRKProjetc_Rtsp PUBLIC /home/lin-x/MyProject/libs/Common)
target_link_libraries(MyRKProjetc_Rtsp ${LIB_FILES} ${LD_FLAGS} ${THIRD_MEDIA} ${FREETYPE} ${SDL} ${SDL_TTF} rtsp)
install(TARGETS MyRKProjetc_Rtsp RUNTIME DESTINATION "./output")

自己搭建流程类似是这样的
在这里插入图片描述

我的环境添加了一下别的东西后,类似如下
在这里插入图片描述
搭建完成后,执行运行指令
cmake -B build
创建目录,指令目录,把生成的一些编译的文件都统统放到build目录下,显得外面的结构不会那么混乱

cmake --build build
编译项目 类似运行了make,最后会生成对应的执行文件,然后丢到开发板上运行

在这里插入图片描述
我这里写了一个简单的脚本运行俩个命令,并且把可执行文件丢到mount挂载到开发板的目录下,方便我执行

记录一下自己的学习过程~

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在VS Code中配置CMake编译环境,您可以按照以下步骤进行操作: 1. 首先,确保您已经安装了VS Code和CMake。 2. 打开VS Code,点击左侧的扩展图标(或使用快捷键Ctrl+Shift+X)打开扩展面板。 3. 在扩展面板中搜索并安装"CMake Tools"扩展。这个扩展提供了与CMake集成的功能。 4. 安装完成后,点击左侧的调试图标(或使用快捷键Ctrl+Shift+D)打开调试面板。 5. 点击调试面板顶部的齿轮图标,选择"Add Configuration"添加调试配置文件。 6. 在弹出的列表中,选择"C++ (GDB/LLDB)"作为模板。 7. 在生成的launch.json文件中,找到"configurations"数组,并在其中添加以下配置: ```json { "name": "CMake Debug", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/build/debug/your_executable_name", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": true, "MIMode": "gdb", "miDebuggerPath": "/path/to/your/gdb" } ``` 请注意替换"your_executable_name"为您的可执行文件的名称,并将"/path/to/your/gdb"替换为您的GDB安装路径(如果使用GDB作为调试器)。 8. 然后,打开您的CMake项目文件夹,并在VS Code的左侧资源管理器中右键单击,选择"CMake: Configure"以生成构建目录。 9. 在资源管理器中再次右键单击,并选择"CMake: Build"以开始构建项目。 10. 最后,点击调试面板顶部的绿色播放按钮即可启动调试会话。 现在,您应该已经成功配置了CMake编译环境,并可以在VS Code中进行调试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值