使用CMake包的用户版本



我一直在用GoogleTest构建项目。当我通过FetchContent获取GoogleTest时,一切都很好,但当我使用系统版本时,我会遇到链接器错误。

我在/home/alecto/.local/cmake-packages/有一个CMake包的用户级目录,CMAKE_PREFIX_PATH设置为该目录。我在这个目录中安装了GoogleTest,但CMake仍然更喜欢该包的系统版本,尽管CMake发现其他包安装在cmake-packages目录中(如Catch2(。

我如何指示CMake更喜欢安装在/home/alecto/.local/cmake-packages中的GoogleTest版本?

根据文档:
ref:https://cmake.org/cmake/help/latest/command/find_package.html

  1. 3.12版新增:搜索<PackageName>_ROOTCMake变量和<PackageName>_ROOT环境变量中指定的路径,其中<PackageName>是要查找的包。包根变量作为堆栈进行维护,因此如果从查找模块中调用,则在当前包的路径之后还会搜索父查找模块的根路径。如果通过了NO_PACKAGE_ROOT_PATH或将CMAKE_FIND_USE_PACKAGE_ROOT_PATH设置为FALSE,则可以跳过此操作。请参阅政策CMP0074
  1. 搜索cmake特定环境变量中指定的路径。这些是在用户的shell配置中设置的,因此使用主机的本机路径分隔符(在Windows上为;,在UNIX上为:(。如果传递了NO_CMAKE_ENVIRONMENT_PATH或将CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH设置为FALSE:
    °<PackageName>_DIR,则可以跳过此操作

因此尝试设置GTest_ROOTGTest_DIR

相关内容

  • 没有找到相关文章

最新更新