构建 LLVM 时理解 CMAKE_INSTALL_PREFIX

Understanding CMAKE_INSTALL_PREFIX when building LLVM

我正在关注此 guide 以构建 LLVM,并想确认我对此构建选项的理解。我当前的来源路径是:

$HOME
|--Documents
|--...
|--Projects
|  |--llvm
|  |  |--source
|  |  |  |--#llvm source code
|  |  |--build
|  |  |  |--Release
|  |  |  |  |--performing cmake -G Ninja from this directory

现在我的问题是,对于 $prefix 变量,该路径是 ~/Projects/llvm/build/Release 吗?哪个会将所有内容安装到我的 llvm 工作源而不是 OSX 的本地安装?

目录 build/Release 累积在 build 阶段创建的文件(执行 ninja 时)。

安装阶段(ninja install),其中一些文件将被复制到它们的最终位置,由CMAKE_INSTALL_PREFIX变量。复制的文件本身足以让项目(在你的情况下是 LLVM)工作;因此,如果您想释放 space.

,可以安全地删除来自 sourcebuild 树的文件

通常,CMAKE_INSTALL_PREFIX 确定安装文件的根目录,因此所有文件都将安装在给定目录下。该目录在指南中被进一步引用为 LLVM_DIR.

最好不要为 CMAKE_INSTALL_PREFIX 使用构建目录及其子目录,因为这可能会导致在 安装 期间复制重叠文件。在你的情况下 ~/Projects/llvm/install 非常适合作为安装前缀。