我正在学习cmake,我对以下事情感到困惑:
我正在尝试将文件移动到特定位置,我这样做了:
file(
INSTALL file.txt DESTINATION ../install_dir
)
这很好用。这将'file.txt'移动到指定的目的地。
然而我尝试过这样:
install (
FILES ./file.txt DESTINATION ./install_dir
)
仅使用'install'不能按预期工作。该文件未安装在该位置。有人可以向我解释一下这个区别吗?为什么它在第一种情况下工作,而不是仅使用安装命令?谢谢。
答案 0 :(得分:3)
这两个命令做了不同的事情。 install(FILES fil DESTINATION dest)
指示CMake生成构建规则,以便在运行安装步骤(fil
或同等版本)时将文件dest
复制到make install
。
file(INSTALL ...)
,而CMake正在解析CMakeLists.txt
文件。请注意,此签名主要用于CMake在上述安装步骤的内部实现:它打印安装主题状态消息等。如果您只想在配置时复制文件,您可能希望更喜欢{{ 1}}或file(COPY)
。