【问题标题】:Why doesn't bash/echo work in this CMake script?为什么 bash/echo 在这个 CMake 脚本中不起作用?
【发布时间】:2015-04-12 11:46:45
【问题描述】:

我的 CMakeLists.txt 正确构建 my_target

我尝试添加这个虚拟命令作为构建后的试用步骤:

 ADD_CUSTOM_COMMAND (
        TARGET my_target POST_BUILD
        COMMAND "echo I made `ls ${MY_DIR} | wc -l` things")

当我运行 make my_target 时,它会失败(在构建之后)

/bin/sh: 1: echo I made `ls /foo/bar | wc -l` things: not found

如果我将“echo”到“things”的部分复制粘贴到外壳中,它运行良好

I made 3 things

“/bin/sh: 1”前缀表明shell 正在以“echo...”作为其命令运行,我尝试将“echo”更改为“bash echo”那么为什么这不起作用呢?

【问题讨论】:

    标签: linux bash cmake sh


    【解决方案1】:
    /bin/sh: 1: echo I made `ls /foo/bar | wc -l` things: not found
    

    错误消息意味着某些东西正在尝试执行一个名为echo I made `ls /foo/bar | wc -l` things的命令,字面意思是空格和刻度。

    所以看起来cmake 将您的整个引号字符串作为可执行文件传递。删除外部引号应该可以解决这个问题。

    【讨论】:

      猜你喜欢
      • 2014-09-18
      • 2018-12-12
      • 1970-01-01
      • 2015-06-16
      • 2020-12-14
      • 1970-01-01
      • 1970-01-01
      • 2013-10-20
      • 2014-09-24
      相关资源
      最近更新 更多