cmake将中间文件放置到某个目录中

cmake to place the intermediate files to a certain directory

本文关键字:中间 文件 cmake      更新时间:2023-10-16

我对cmake还很陌生,想知道如何在cmake中做到这一点。我想把所有中间文件(比如.o文件)放在某个目录中(比如"构建"),然后一旦构建完成,我想把我需要的某些文件(比如,.exe,像最终产品一样的.dll)从构建目录复制到"stage"目录。如何指定这两个目录(build和stage)的路径?Cmake还会检查构建/阶段目录是否存在。如果不存在,它将为我创建目录。

任何帮助都将不胜感激。

您要问的是最常见的CMake用例。

要使整个构建过程发生在任意目录中,您应该从该目录运行cmake /path/to/your/project(或使用cmake-gui)。

在明确告诉CMake在那里输出一些文件之前,您的源目录将不受影响。

关于第2点:

您应该将install()调用放入CMakeLists.txt中(请参阅install()上的文档),并将CMAKE_INSTALL_PREFIX设置为希望复制文件的目录。之后,您可以从构建目录运行make installcmake -P cmake_install.cmake来安装这些文件。

我建议采用另一种方法。

  1. 制作源代码构建请参阅此处,以便所有构建内容都在自己的文件夹中
  2. 通过显式复制将可执行文件从构建目录复制到自己的文件夹中请参见此处

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