当前位置: 首页 > news >正文

【RK3588开发】配置基于 VS Code + CMake 的 RK3588 交叉编译开发环境

配置基于 VS Code + CMake 的 RK3588 交叉编译开发环境

(1)安装cmake工具

(2)编写 CMake 交叉编译配置文件 (toolchain.cmake)

这段 CMake 配置代码的目的是为了告诉 CMake 如何进行交叉编译

set(CMAKE_SYSTEM_NAME Linux) set(CMAKE_SYSTEM_PROCESSOR aarch64) set(CMAKE_C_COMPILER /opt/atk-dlrk3588-toolchain/bin/aarch64-buildroot-linux-gnu-gcc) set(CMAKE_CXX_COMPILER /opt/atk-dlrk3588-toolchain/bin/aarch64-buildroot-linux-gnu-g++) set(CMAKE_SYSROOT /opt/atk-dlrk3588-toolchain/aarch64-buildroot-linux-gnu/sysroot) set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

(3)配置本地cmake套件

点击 “Edit User-Local CMake Kits”: 在 VS Code 命令面板(Ctrl+Shift+P)选这个选项,会打开 cmake-tools-kits.json文件。

在文件里一个数组 []添加一段 JSON 代码,指向刚才toolchain.cmake文件

[{"name":"GCC 9.4.0 x86_64-linux-gnu","compilers":{"C":"/bin/x86_64-linux-gnu-gcc-9","CXX":"/bin/x86_64-linux-gnu-g++-9"}},{"name":"rk3588-zyc","toolchainFile":"/home/zyc/toolchain.cmake"}]

(4)创建VsCode工程

每次创建工程需要创建一堆文件所以直接搞了个shell函数

vscodeapp(){# 1. 获取你输入的项目名 (例如: aaa)localNAME=$1# 检查有没有输入名字if[-z"$NAME"];thenecho" 错误: 请输入项目名称! (例如: vscodeapp my_demo)"return1fiecho" 正在创建项目:$NAME..."# 2. 创建目录结构 ( include/项目名, src, build)mkdir-p"$NAME"/{include/"$NAME",src,build}# 3. 自动生成一个通用的 CMakeLists.txtcat<<EOF>"$NAME"/CMakeLists.txt cmake_minimum_required(VERSION3.10)project(${NAME})set(CMAKE_EXPORT_COMPILE_COMMANDS ON)# 自动查找 src 下的所有 cppfile(GLOB SRC_FILES"src/*.cpp")# 添加头文件路径include_directories(\${CMAKE_SOURCE_DIR}/include)# 生成可执行文件add_executable(${NAME}\${SRC_FILES})EOF# 4. 生成一个简单的 main.cpp (防止空项目报错)cat<<EOF>"$NAME"/src/main.cpp#include <iostream>intmain(){std::cout<<"Hello,${NAME}!"<<std::endl;return0;}EOF# 5. 直接用 VS Code 打开这个新文件夹code"$NAME"}

把这段代码放入~/.bashrc文件的最后,每次只需要在命令行输入以下指令就会自动建立好工程,并且会自动写好MakeLists.txt,如果需要链接库需要修改这个MakeLists.txt

vscodeapp name

(5)编译

选择构建的套件

点击下放的Build即可完成编译,生成的可执行文件在build文件夹

(6)补充:链接库后头文件找不到的问题

可以编译通过,但是vscode找不到链接库的头文件

在终端输入

code ~/.config/Code/User/settings.json

打开这个文件后,把下面这行代码加在最后的大括号 }`之前(记得给上一行末尾加个逗号)

"C_Cpp.default.compileCommands":"${workspaceFolder}/build/compile_commands.json"
http://www.jsqmd.com/news/139348/

相关文章:

  • 2025老年猫粮TOP5榜单!资深宠粮评测师精选推荐 - 极欧测评
  • 一次大模型接口雪崩事故:从调用失败到服务降级
  • Hibernate‌
  • 学长亲荐10个AI论文软件,自考本科毕业论文轻松搞定!
  • 专业 ProfiNet 转 CAN 网关厂家推荐,塔讯技术
  • STM32 环形串口队列程序:大数据串口收发的神兵利器
  • AI 在静雅斋中的使用角度梳理
  • 2025老年狗粮口碑优选榜单:5大优质品牌测评与选购指南 - 极欧测评
  • 飞行的“社会公平”:技术与政策如何破解低空出行的“精英化”与“数字鸿沟”难题
  • 智能控制实验:模糊控制基础(Fuzzy)
  • 2025无人机蜂群选型指南:技术验证、避坑要点与优质供应商全解析 - 品牌2025
  • 在Matlab中实现图片特定部分单独显示与多边形截取
  • ProfiNet 转 CAN 网关靠谱供应商推荐:塔讯技术
  • 广东经济深度复盘:穿越周期的韧性与新旧动能转换
  • 机器学习——罗辑回归
  • 新手必看!2025年公众号编辑器选购指南:从入门到精通的效率工具盘点
  • 2025全钢实验台厂家推荐 产能专利环保三维度权威测评 - 爱采购寻源宝典
  • 哪些字段适合加索引,哪些不适合加?
  • 靠谱的台球杆定制店与优质品牌推荐
  • 事务与 ACID 及失效场景
  • zTasker v2.3.4:Windows 自动化任务工具
  • 上海国德:客户忠诚度、售后与满意度的深度剖析
  • 卫星遥控遥测可视化开源方案
  • 推荐靠谱诚信的企业展厅设计公司,盛世笔特
  • 简易 python 打字计数器
  • 2025年国内家居家纺展示平台口碑推荐榜单有哪些? - 讯息观点
  • 昇思MindSpore打造HyperParallel架构,引领AI框架迈入“超节点时代”
  • 消息队列--消息顺序性保障
  • 实力强的腾讯广告专业服务商推荐,为品牌营销保驾护航
  • 实力强的腾讯广告专业服务商推荐,为品牌营销保驾护航