news 2026/4/3 6:05:55

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【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"
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/1 6:49:23

二维互相关随机场模拟实践:保姆级教程

二维互相关随机场模拟实践&#xff0c;保姆级教程 基于matlab与flac6.0的乔列斯基分解的中点法模拟岩土体互相关随机场 自相关函数可以选择&#xff1a;指数型、高斯型、二阶自回归型、指数余弦型、三角型自相关函数 案例文件包括以下内容&#xff1a; 第一步&#xff1a;Flac6…

作者头像 李华
网站建设 2026/3/27 11:22:48

消息队列--消息顺序性保障

目录 参考美团技术团队博客 项目中实现思路 参考美团技术团队博客 两种通用的解决方案&#xff1a; 1. 版本号。 2. 状态机。 版本号 举个简单的例子&#xff0c;一个产品的状态有上线/下线状态。如果消息1是下线&#xff0c;消息2是上线。不巧消息1判重失败&#xff0c;被投递…

作者头像 李华
网站建设 2026/3/17 10:39:55

UI框架-element-ui---图标管理和调用

一.安装Element Plus$ npm install element-plus --save二.在main.js全局注册图标import * as ElementPlusIconsVue from element-plus/icons-vue const app createApp(App)for (const [key, component] of Object.entries(ElementPlusIconsVue)) {app.component(key, compone…

作者头像 李华