如何在 CMake 中创建临时目录?

krv*_*lav 5 cmake

我需要 Linux 中 mktemp 命令的 CMake 模拟。什么宏提供了这个?

DLR*_*ave 4

没有“mktemp”的直接 CMake 类似物。

从 CMake 脚本或 CMakeLists.txt 文件内部,最好的选择是使用

file(MAKE_DIRECTORY "/path/to/dir/name")
Run Code Online (Sandbox Code Playgroud)

命令,并为其指定一个您知道具有写入权限的目录的名称。文件命令的帮助可以在这里找到:https://cmake.org/cmake/help/latest/command/file.html

你也可以简单地使用

$ENV{TMP}
Run Code Online (Sandbox Code Playgroud)

如果有一个环境变量将您指向系统提供的临时目录。

如果您直接调用 CMake,您也可以使用

cmake -E make_directory /path/to/dir/name
Run Code Online (Sandbox Code Playgroud)

最后,另请参阅execute_process命令,它允许您从cmake脚本或CMakeLists文件中调用任意命令行工具并捕获输出。如果您有另一个可以调用的为您提供 mktemp 功能的工具,这可能会很有用。https://cmake.org/cmake/help/latest/command/execute_process.html