我正在尝试将文件移至特定位置,我这样做了:
file(INSTALL file.txt DESTINATION ../install_dir)
这很好。这将file.txt
移至指定的目的地。
但是我尝试这样的尝试:
install(FILES ./file.txt DESTINATION ./install_dir)
使用install(FILES)
不会像我期望的那样复制文件。当我运行cmake configure命令时,该文件未安装在该位置。
有人可以向我解释区别吗?为什么在运行configure命令时file(INSTALL)
可以工作,而install(FILES)
不?
两个命令做不同的事情。install(FILES fil DESTINATION dest)
指示CMAKE生成构建规则,以便在运行安装步骤时将文件fil
复制到dest
(make install
或等效(。
file(INSTALL ...)
在配置时间立即评估,而CMAKE正在解析CMakeLists.txt
文件。请注意,此签名主要用于CMAKE的内部实现上述安装步骤:它打印以安装为主题的状态消息等。如果您只想在配置时间复制文件,则可能需要更喜欢file(COPY)
或file(COPY_IF_DIFFERENT)
。