CMAKE_FIND_NO_INSTALL_PREFIX

CMAKE_SYSTEM_PREFIX_PATH 中排除 CMAKE_INSTALL_PREFIXCMAKE_STAGING_PREFIX 变量的值。CMake 默认将这些项目的目标前缀添加到 CMAKE_SYSTEM_PREFIX_PATH 中,以支持构建一系列依赖包并将它们安装到公共前缀。将 CMAKE_FIND_NO_INSTALL_PREFIX 设置为 TRUE 可抑制此行为。

CMAKE_SYSTEM_PREFIX_PATH 在第一次调用 project()enable_language() 命令时进行初始化。因此,为了使其生效,必须在此之前设置 CMAKE_FIND_NO_INSTALL_PREFIX。用户可以通过在命令行中将其设置为缓存条目来实现这一点。

请注意,该前缀(们)可能仍会出于其他原因被搜索,例如与 CMake 安装的相同前缀,或作为内置系统前缀。