cmake(三十九)Cmake之execute_process指令

2023-05-16

一    官网博客

用途:执行一个或多个'子进程'

场景:通过git命令'读取版本号',在代码中使用;列出某些'文件的名称'在代码中使用

1)  按指定的'先后顺序'运行一个或多个命令

特点:每个进程的输出通过管道连接'作为'下一个进程的输入

2)  所有的进程使用'单个的'标准错误输出管道

3)  如果指定了'WORKING_DIRECTORY',则'指定的目录'将作为'子进程'当前的'工作'目录

4)  如果指定了'TIMEOUT'值,则如果在指定的时间内(以秒为单位计算,允许有小数位)子进程执行仍未完成,则将会被中断

5)  如果指定了'RESULT_VARIABLE'变量,则'最后命令执行的结果'将'保存'在该变量中,它是'最后'一个子进程执行完后的'返回值'或描述某种'错误信息'的字符串

6)  如果指定了'OUTPUT'_VARIABLE或'ERROR'_VARIABLE变量,则该变量会'分别保存'标准输出和标准错误输出的内容

    备注:如果指定的变量是同一个,则输出会按'产生的先后顺序'保存在该变量中

7)  如果指定了INPUT_FILE、OUTPUT_FILE、ERROR_FILE等文件名,则它们会分别与'第一个'子进程的标准'输入','最后'一个子进程的标准'输出'以及'所有子进程'的标准'错误输出'相关联

8)  如果指定了OUTPUT_'QUIET'或ERROR_QUIET,则会'忽略'标准输出和错误输出

9) 如果在同一管道中'同时指定'了多个OUTPUT_*或ERROR_*选项,则优先级顺序是'未知'

   备注:应'避免'这种情况

10) 如果未指定任何OUTPUT_*或ERROR_*选项,则命令CMake所在进程'共享输出管道'

二    执行shell命令

++++++++++'(1)执行shell命令'++++++++++

execute_process(COMMAND echo "$ENV{PATH}" WORKING_DIRECTORY <这句shell命令执行的工作目录>)

备注:cmake里面是无法通过"${PATH}"形式获取环境变量

++++++++++'(2)执行shell脚本'++++++++++

execute_process(COMMAND sh ceshi.sh WORKING_DIRECTORY <ceshi.sh所在目录>)

备注:在调用一个execute_process时可以'顺序'执行'多条'COMMAND命令

补充:'python'或其它命令

三    区别

1) 在cmake中也可以通过'add_custom_comand'和'add_custom_target'执行shell命令,但是他们是一般执行命令'跟target'的生成有关

备注:make的'时候'才会执行

2) 'execute_process'只是简单地在cmake执行'编译之前调用shell命令'

备注:cmake的'时候'会执行

四    实践

git 的ssl'证书'问题

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

cmake(三十九)Cmake之execute_process指令 的相关文章

随机推荐

  • cmake -D CMAKE_PREFIX_PATH=/home/nvidia/data/wyy/openpose/build

    cmake D CMAKE PREFIX PATH 61 home nvidia data wyy openpose build 表示上层目录 D 相当于就是定义 D 可以理解为告诉cmake 后边我要定义一些参数了 你每定义一个就在前边加
  • VNC 的应用及灰屏鼠标变X问题

    Ubuntu中vnc服务器端的安装很简单 xff0c 运行如下命令 xff1a sudo apt get install vnc4server 第一次启动vncserver后 xff0c 在用户家目录中会生成 vnc 目录 xff0c 注意
  • 第七章 MapReduce详解

    MapReduce是一种并行编程模型 用于大规模数据集 大于1TB 的并行计算 它将复杂的 运行于大规模集群上的并行计算过程高度抽象为两个函数 Map和Reduce MapReduce是单输入 两阶段 粗粒度数据并行 分布式计算框架 适合用
  • 跨域-Vue-Cli配置代理转发

    目标 xff1a 通过配置vue cli请求代理解决开发环境下的跨域问题 vue cli中集成的跨域解决方案 思路 xff1a 在前端服务和后端接口服务之间 架设一个中间代理服务 xff0c 它的地址保持和前端服务一致 xff0c 那么 x
  • Unable to determine the device handle for GPU 0000:83:00.0: GPU is lost.Reboot the system to recover

    更新 xff1a 发现是机房空调太差了 xff0c 显卡温度过高的原因 在跑程序的时候遇到了这个问题 xff0c 还没有找到解决的方法 xff1a Unable to determine the device handle for GPU
  • Windows自带的远程桌面共享工具mstsc

    Windows自带的远程桌面共享工具mstsc 1 运行Windows自带的mstsc2 输入远程IP地址3 配置 本地资源 4 然后点击 连接 远程电脑 1 运行Windows自带的mstsc 按 34 Win 43 R 34 组合键打开
  • 单目纯视觉避障方案——2020中国机器人大赛FIRA避障仿真组决赛代码开源

    单目纯视觉避障方案 2020中国机器人大赛FIRA避障仿真组决赛代码开源 目录 单目纯视觉避障方案 2020中国机器人大赛FIRA避障仿真组决赛代码开源比赛环境介绍赛题要求比赛思路该方案的出彩点仍需优化的地方 代码效果展示 特别鸣谢两位吴同
  • ROS问题:gazebo没有想要的模型,而且不报错

    问题 在运行一些demo时 xff0c 检查launch文件 lt startup simulated world gt lt include file 61 34 find gazebo ros launch empty world la
  • ROS报错:ROS-Melodic中cv_bridge报错

    我是ubuntu18 04 ROS Melodic ImportError dynamic module does not define module export function PyInit cv bridge boost 这个报错是
  • vnc工具登录,vnc工具登录方法,多用户登录vnc服务器教程

    VNC是虚拟网络控制台的缩写 它是一款优秀的远程控制工具软件 xff0c 远程控制能力强大 xff0c 高效实用 xff0c 其性能可以和 Windows中的任何远程控制软件媲美 但是它只能进行单一的用户登录和操控 xff0c 具有比较大的
  • MFC最近文件列表的使用[转]

    MFC框架中对最近文件列表的支持 MFC建立的标准框架程序中有记录最近操作文件的能力 xff0c 这些最近文件的路径被记录到注册表 xff0c 在程序运行时 xff0c 又将添加到文件菜单中 在CWinApp中有个 CRecentFileL
  • 8.ROS编程学习:自定义服务数据python调用

    目录 一 准备工作 vscode配置 二 服务端实现 1 创建demo01 server p py 2 添加可执行权限 3 配置CMakeList txt melodic不用配置也行 xff0c noetic需要配置 4 测试服务端 三 客
  • Keil出现Error:Flash Download failed - Could not load file错误 解决点拨

    根本原因 很多大学生刚接触keil在新建模版时可能会出现 Error Flash Download failed Could not load file 的错误 由于机器人工程专业的新开办 xff0c 可能老师也无法解决 xff0c 其实原
  • aarch64 Centos7 No such file or directory和No module named sqlitecachec

    莫名其妙的出现yum无法使用 xff0c 提示No such file or directory 可能是yum被误删除了 xff0c 根据提示需要重新安装一下yum xff0c 检查版本 cat etc redhat release Cen
  • Pid控制算法-位置型pid算法的C++实现

    PID控制算法的C 43 43 语言实现 三 位置型PID的C 43 43 语言实现 上一节中已经抽象出了位置性PID和增量型PID的数学表达式 xff0c 这一节 xff0c 重点讲解C 43 43 代码的实现过程 xff0c 算法的C
  • Pid控制算法-变积分的pid算法的C++实现

    PID控制算法的C 43 43 实现 七 变积分的PID控制算法C 43 43 实现 变积分PID可以看成是积分分离的PID算法的更一般的形式 在普通的PID控制算法中 xff0c 由于积分系数ki是常数 xff0c 所以在整个控制过程中
  • Ceres Solver 在Windows下安装配置笔记

    引子 因为项目需要用到Ceres Solver这个库实现非线性优化 xff0c 这几天投入了很多时间来学习研究 没想到的是 xff0c 这个库的安装就非常繁琐 官方的安装指南写的却过于简略 尤其是在Windows环境下 xff0c 问题bu
  • STM32开发选择CubeIDE还是keil

    一 xff0c 先说结论 xff1a 选择keil MDK 二 xff0c 原因 xff1a 1 xff0c 优势 cubeIDE代码编辑能力确实比keil方便 包括 xff1a 代码提示 xff0c 自己可以网上找个代码自动补全插件 xf
  • cmake(三十一)Cmake之get_filename_component指令

    一 基础知识 cmake获取 39 文件名 39 的 39 特定 39 部分 xff0c 提供了 39 三种 39 调用方式 注意 xff1a 39 key 39 关键字 方式1 方式2 方式3 二 实践 xff08 1 xff09 路径
  • cmake(三十九)Cmake之execute_process指令

    一 官网博客 用途 xff1a 执行一个或多个 39 子进程 39 场景 xff1a 通过git命令 39 读取版本号 39 在代码中使用 列出某些 39 文件的名称 39 在代码中使用 1 按指定的 39 先后顺序 39 运行一个或多个命