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

CMAKE工程编译好后自动把可执行文件传输到远程开发板

# 设置 CMake 最低版本要求
cmake_minimum_required(VERSION 3.10)# 设置项目名称
project(MyProject)# 添加可执行文件,这里以项目名作为可执行文件的名称
add_executable(${PROJECT_NAME} main.cpp)# 设置开发板信息
set(DEVELOPMENT_BOARD_IP "192.168.1.100")
set(DEVELOPMENT_BOARD_USER "root")
set(DEVELOPMENT_BOARD_PASSWORD "password")
set(DEVELOPMENT_BOARD_DEST_DIR "/home/user/apps")# 添加自定义命令和目标
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILDCOMMAND sshpass -p ${DEVELOPMENT_BOARD_PASSWORD} scp $<TARGET_FILE:${PROJECT_NAME}> ${DEVELOPMENT_BOARD_USER}@${DEVELOPMENT_BOARD_IP}:${DEVELOPMENT_BOARD_DEST_DIR}COMMENT "Pushing ${PROJECT_NAME} to development board..."
)

代码解释

项目名称设置:project(MyProject) 定义了项目名称为 MyProject,后续使用 ${PROJECT_NAME} 变量来引用这个项目名称。
添加可执行文件:add_executable(${PROJECT_NAME} main.cpp) 使用项目名称作为可执行文件的名称,这里假设源文件是 main.cpp,你可以根据实际情况修改。
开发板信息设置:同样设置了开发板的 IP 地址、用户名、密码和目标存放目录,这些信息会用于后续的文件传输。
自定义命令:add_custom_command 用于在 target(即 ${PROJECT_NAME})编译完成后执行自定义命令。POST_BUILD 表明该命令在编译结束后执行。COMMAND 中使用 sshpass 和 scp 命令将编译生成的可执行文件($<TARGET_FILE:${PROJECT_NAME}>)推送到开发板指定的目录。COMMENT 用于在执行自定义命令时显示提示信息,告知正在将项目的可执行文件推送到开发板。

注意事项

sshpass 工具:和之前一样,要确保系统中安装了 sshpass 工具,在 Ubuntu 系统中可以使用 sudo apt-get install sshpass 进行安装。
安全问题:明文存储密码存在安全风险,建议使用更安全的方式,如环境变量来存储密码。
网络连接:要保证本地机器和开发板之间网络连接正常,且开发板的 SSH 服务处于开启状态。

如果你还有多个 target 需要推送到开发板,可以按照同样的方式为每个 target 添加 add_custom_command 命令。

http://www.lryc.cn/news/528489.html

相关文章:

  • Windows 程序设计7:文件的创建、打开与关闭
  • 策略模式 - 策略模式的使用
  • 具身智能研究报告
  • Windows安装Milvus
  • Excel分区间统计分析(等步长、不等步长、多维度)
  • 宝塔mysql数据库容量限制_宝塔数据库mysql-bin.000001占用磁盘空间过大
  • LeetCode 2412.完成所有交易的初始最少钱数:【年度巨献】举例说明(讲明白),由难至简(手脚不乱),附Python一行版
  • 多人-多agent协同可能会挑战维纳的反馈
  • Go学习:类型转换需注意的点 以及 类型别名
  • C语言中的局部变量和全局变量有什么区别?
  • 价值交换到底在交换什么
  • C++传送锚点的内存寻址:内存管理
  • Prompt提示词完整案例:让chatGPT成为“书单推荐”的高手
  • 基于django的智能停车场车辆管理深度学习车牌识别系统
  • 【Proteus仿真】【51单片机】简易计算器系统设计
  • 洛谷P3884 [JLOI2009] 二叉树问题(详解)c++
  • 《Foundation 起步》
  • 【hot100】刷题记录(6)-轮转数组
  • Android createScaledBitmap与Canvas通过RectF drawBitmap生成马赛克/高斯模糊(毛玻璃)对比,Kotlin
  • ThinkPad E480安装Ubuntu 18.04无线网卡驱动
  • 自然语言处理——从原理、经典模型到应用
  • Ollama 运行从 ModelScope 下载的 GGUF 格式的模型
  • Haproxy介绍及学习
  • 【2024年华为OD机试】 (C卷,200分)- 贪心歌手(JavaScriptJava PythonC/C++)
  • 深度学习在金融风控中的应用:突破传统模型的瓶颈
  • LLM - 大模型 ScallingLaws 的指导模型设计与实验环境(PLM) 教程(4)
  • hunyuan 混元学习
  • 开发、科研工具汇总
  • 项目部署(springboot项目)
  • OpenEuler学习笔记(十四):在OpenEuler上搭建.NET运行环境