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 installcmake -P cmake_install.cmake 来安装这些文件。

【讨论】:

【参考方案2】:

我会建议另一种方法。

    进行源外构建see here,这样您的所有构建内容都在自己的文件夹中 通过显式复制see here将构建目录中的可执行文件复制到自己的文件夹中

或者,您也可以提供一个安装例程,而不是选择第 2 步,将所需的可执行文件安装在给定路径中。 see here

【讨论】:

以上是关于cmake 把中间文件放到某个目录下的主要内容,如果未能解决你的问题,请参考以下文章

工具:把Mac上某个目录下所有文件移动到一层目录下

ubuntu cmake交叉编译时报错:没有那个文件或目录

cmake的外部编译

python如何实现定时遍历目录,每次把目录下的最新的文件放到列表里?

C++学习(四四零)android studio如何关联cmake

把src目录下的java类文件打成jar包放到web-inf下的lib里,classes文件删除