gpt4 book ai didi

c++ - find_package 找不到作为 CMake 一部分的 GTest

转载 作者:搜寻专家 更新时间:2023-10-31 00:29:39 24 4
gpt4 key购买 nike

我想通过以下方式找到 GTest:

find_package(GTest REQUIRED)

但是没有找到:

Error:Could NOT find GTest (missing: GTEST_LIBRARY GTEST_INCLUDE_DIR GTEST_MAIN_LIBRARY)

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

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

最佳答案

如果您使用的是 Ubuntu,您应该阅读 /usr/share/doc/libgtest-dev/README.Debian。它说:

The Google C++ Testing Framework uses conditional compilation for some things. Because of the C++ "One Definition Rule", gtest must be compiled with exactly the same flags as your C++ code under test. Because this is hard to manage, upstream no longer recommends using precompiled libraries

因此您应该使用完全相同的编译器选项编译和安装您自己版本的 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)

关于c++ - find_package 找不到作为 CMake 一部分的 GTest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40148480/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com