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

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_BUILD
    COMMAND 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.kler.cn/a/526031.html

相关文章:

  • 简要介绍C语言与c++共有的数学函数
  • linux用户管理
  • 团体程序设计天梯赛-练习集——L1-022 奇偶分家
  • CMake常用命令指南(CMakeList.txt)
  • OpenHarmony 5.0.2 Release来了!
  • 【QT】- QUdpSocket
  • 深度学习探索:ChatGPT数据分析精髓 梯度下降优化方法深度剖析
  • 微软官方工具箱 PowerToys,提升工作效率
  • Conditional DETR for Fast Training Convergence论文学习
  • 负荷预测算法模型
  • 新月智能护甲系统CMIA--未来战场的守护者
  • 从巫师求雨说起
  • 如何使用formlinker,重构微软表单创建的数字生产力法则?
  • 提供算法模型管理、摄像头管理、告警管理、数据统计等功能的智慧园区开源了
  • MySQL(高级特性篇) 14 章——MySQL事务日志
  • 【memgpt】letta 课程4:基于latta框架构建MemGpt代理并与之交互
  • 如何把一个python文件打包成一步一步安装的可执行程序
  • 基于Android Studio开发平台使用CNN和LSTM的人工智能家居监控系统
  • 物业管理软件引领社区智能化转型提升服务效率与居民生活质量
  • 网站快速收录:利用新闻源的优势
  • 【外文原版书阅读】《机器学习前置知识》2.用看电影推荐的例子带你深入了解向量点积在机器学习的作用
  • AI大模型开发原理篇-8:Transformer模型
  • 走近科学IT版:Windows里Ollama关闭后还在占用11434端口
  • 2.文件IO
  • 国产SiC碳化硅功率器件技术成为服务器电源升级的核心引擎
  • 多组学(multi-omics):概念、历史、现状与展望