cmake 把中间文件放到某个目录下
Posted
技术标签:
【中文标题】cmake 把中间文件放到某个目录下【英文标题】:cmake to place the intermediate files to a certain directory 【发布时间】:2012-02-09 20:56:52 【问题描述】:我对 cmake 还是很陌生,想知道如何使用 cmake。我想将所有中间文件(如 .o 文件)放置在某个目录(例如“build”)中,然后在构建完成后复制我需要的某些文件(例如 .exe、. dll 像最终产品)从构建目录到“阶段”目录。如何指定这两个目录(构建和阶段)的路径? Cmake 还会检查 build/stage 目录是否存在。如果不存在,它会为我创建目录。
任何帮助将不胜感激。
【问题讨论】:
【参考方案1】:您要问的是最常见的 CMake 用例。
要使整个构建过程发生在任意目录中,您应该从该目录运行cmake /path/to/your/project
(或使用 cmake-gui)。
在您明确告诉 CMake 在那里输出一些文件之前,您的源目录不会受到影响。
关于第2点:
您应该将 install()
调用放入您的 CMakeLists.txt(请参阅 install()
上的文档)并将 CMAKE_INSTALL_PREFIX 设置为您希望复制文件的目录。之后,您可以从构建目录运行 make install
或 cmake -P cmake_install.cmake
来安装这些文件。
【讨论】:
【参考方案2】:我会建议另一种方法。
-
进行源外构建see here,这样您的所有构建内容都在自己的文件夹中
通过显式复制see here将构建目录中的可执行文件复制到自己的文件夹中
或者,您也可以提供一个安装例程,而不是选择第 2 步,将所需的可执行文件安装在给定路径中。 see here
【讨论】:
以上是关于cmake 把中间文件放到某个目录下的主要内容,如果未能解决你的问题,请参考以下文章
python如何实现定时遍历目录,每次把目录下的最新的文件放到列表里?