Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.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
如何在cmake安装中使用通配符_Cmake_Installation_Wildcard - Fatal编程技术网

如何在cmake安装中使用通配符

如何在cmake安装中使用通配符,cmake,installation,wildcard,Cmake,Installation,Wildcard,我可以安装一个特定的文件。在同一命令中使用通配符时,它会抱怨文件不存在 这是一个有效的方法 这是一个不工作的 错误消息是: -- Install configuration: "" CMake Error at Source/cmake_install.cmake:49 (file): file INSTALL cannot find "/home/wxie/AI/CUDA/cuda_exmaple/example_2/Build/Source/*_rdict.pcm". Call St

我可以安装一个特定的文件。在同一命令中使用通配符时,它会抱怨文件不存在

这是一个有效的方法 这是一个不工作的 错误消息是:

-- Install configuration: ""
CMake Error at Source/cmake_install.cmake:49 (file):
  file INSTALL cannot find
  "/home/wxie/AI/CUDA/cuda_exmaple/example_2/Build/Source/*_rdict.pcm".
Call Stack (most recent call first):
  cmake_install.cmake:42 (include)
命令流
install(FILES)
要求明确列出所有文件

要按模式安装多个文件,请使用
install(DIRECTORY)
及其模式选项:


有关安装(目录)和模式的更多信息,请参见。

确定。以下是我最后要做的:

add_custom_target(move_pcmfile
COMMAND mv ${BUILD_DIR}/Source/*.pcm  ${LIBRARY_OUTPUT_PATH})

在“make”之后,我只做“make move\u pcmfile”。这似乎是解决我的问题的最方便的方法。

安装(目录)将*.pcm文件放在“lib/Build/”目录中,而实际的lib文件放在“lib”目录中。出于我的目的,我需要lib文件和pcm文件在同一个目录中。有没有这样做的选择?IOne的解决方案是在文件列表上循环并逐个安装。最好有一个更简单的解决方案,有适当的目录和目标选项,您可以调整文件的正确安装路径。或者您的意思是,在这种情况下,安装目录将删除通过其他方式(例如使用
install(TARGET)
)安装的文件?“一种解决方案是在文件列表上循环并逐个安装。”-您可以使用GLOB收集文件,并将结果列表传递到
install(files)
命令。基本正常,但仍不完美。症状如下:“cmake../;make;make install”然后我收到消息:“安装项目…”--install configuration:”但是文件没有安装。然后我需要再次执行该操作:“cmake../;makeinstall“这次可以运行。为什么需要执行两次”cmake../“才能完成?这就是我所做的”文件(GLOB_RECURSE PCM_FILES${cmake_CURRENT_BINARY_DIR}/Source/*.PCM);“install(FILES${PCM\u FILES}DESTINATION${LIBRARY\u OUTPUT\u PATH})”我认为原因是cmake无法在“make”之前找到PCM文件,因为它在“make”完成之前不存在。当第二次这样做时,pcm文件就在那里,这一次它可以工作。“我认为原因是cmake在“make”之前找不到pcm文件,因为它在“make”完成之前不存在。”-没错<代码>文件(GLOB)立即搜索文件。
-- Install configuration: ""
CMake Error at Source/cmake_install.cmake:49 (file):
  file INSTALL cannot find
  "/home/wxie/AI/CUDA/cuda_exmaple/example_2/Build/Source/*_rdict.pcm".
Call Stack (most recent call first):
  cmake_install.cmake:42 (include)
install(DIRECTORY  ${CMAKE_CURRENT_BINARY_DIR} DESTINATION ${LIBRARY_OUTPUT_PATH}
    FILES_MATCHING PATTERN "*_rdict.pcm")
add_custom_target(move_pcmfile
COMMAND mv ${BUILD_DIR}/Source/*.pcm  ${LIBRARY_OUTPUT_PATH})