find_package 没有找到属于 CMake 的 GTest

新手上路,请多包涵

我想通过以下方式找到 GTest

 find_package(GTest REQUIRED)

但是没有找到:

错误:找不到 GTest(缺少:GTEST_LIBRARY GTEST_INCLUDE_DIR GTEST_MAIN_LIBRARY)

我从这个 链接 知道 GTest 应该通过标准 CMake 分发。

你能告诉我我做错了什么吗?

原文由 Roman Volkov 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.8k
1 个回答

如果你在 Ubuntu 上,你应该阅读 /usr/share/doc/libgtest-dev/README.Debian 。它说:

Google C++ 测试框架对某些事情使用条件编译。由于 C++“一个定义规则”,gtest 必须使用与被测 C++ 代码完全相同的标志进行编译。因为这很难管理,上游不再推荐使用预编译库

因此,您应该使用完全相同的编译器选项编译和安装您自己版本的 gtest 库,并相应地设置 GTEST_LIBRARYGTEST_ROOT 变量。

例如,我做了以下事情:

 $ mkdir -p ExternalLibs/gTest
$ cd ExternalLibs/gTest
$ cmake /usr/src/gtest
$ make

然后我在我的 CMakeLists.txt 中添加了以下几行:

 set (GTEST_ROOT ${CMAKE_SOURCE_DIR}/ExternalLibs/gTest)
find_package(GTest REQUIRED)

原文由 HappyCactus 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题