Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何在CMake execute_过程中使用find-exec?_Linux_Find_Installation_Cmake_Exec - Fatal编程技术网

Linux 如何在CMake execute_过程中使用find-exec?

Linux 如何在CMake execute_过程中使用find-exec?,linux,find,installation,cmake,exec,Linux,Find,Installation,Cmake,Exec,我使用CMakeinstall(目录…表单在安装时复制标题: install(DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR} DESTINATION include FILES_MATCHING PATTERN "*.h") 但是,此命令(未找到标题的命令)。因此,我希望在安装过程中查找并删除这些空目录: install(CODE "execute_process( COMMAND find -type d -empty -exec rmdir '{

我使用CMake
install(目录…
表单在安装时复制标题:

install(DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}
  DESTINATION include
  FILES_MATCHING PATTERN "*.h")
但是,此命令(未找到标题的命令)。因此,我希望在安装过程中查找并删除这些空目录:

install(CODE "execute_process(
  COMMAND find -type d -empty -exec rmdir '{}' ';'
  WORKING_DIRECTORY ${CMAKE_INSTALL_PREFIX}
  ERROR_FILE ${CMAKE_CURRENT_BINARY_DIR}/prune_empty_dirs.err)")
使用上述命令,文件
prune\u empty\u dirs.err
包含:

find: missing argument to `-exec'

我试图摆脱牙套,但它产生了同样的行为。我做错了什么?谢谢,我找到了解决办法。它不是“{}”,而是“授权”;”。以下语法适用于我(CMake 2.8.9):


你在工作中有一个输入错误。\u direcotirthreak@ixSci我修正了它;然而,打字错误是在问题中,而不是在我的脚本中!您是否在不使用“”或使用双精度“”的情况下尝试此命令<代码>-exec rmdir{}或使用
-exec rmdir'{}'';''
-exec\“rmdir{}\”
@ixSci我尝试了引用您建议的可能方式,但它们都给出了相同的失败:-/但是,它确实通过执行
bash
来实现我的目标,并将
find
命令作为
-c
的参数;谢谢你的帮助,我建议你不要一开始就创建文件夹,以后再删除它们。你可以用文件(GLOB)来完成这项工作-获取你需要的所有文件,然后测试输出是否包含任何内容,如果不包含,则只需不执行安装(目录)在审阅队列中遇到此问题,看起来很危险,但我需要了解更多关于cmake的信息。你能再解释一下吗?看来解决办法是逃避
install()
code中的
find
命令时,不使用引号将其括起来(否则字符串将被截断)。
--exec rm {} "\;"