我是 Cmake 和 Gtest 的新手。我在 CMake 中有问题
find_package(GMock REQUIRED)
Run Code Online (Sandbox Code Playgroud)
和
target_link_libraries(runtest ${GMOCK_BOTH_LIBRARIES} pthread).
Run Code Online (Sandbox Code Playgroud)
当我构建项目时,CMake 找不到 GMock 包。
但是当我提到库的绝对路径时,它工作正常。
例如:
set(GMOCK_INCLUDE_DIRS /usr/local/include/gmock)
set(GMOCK_BOTH_LIBRARIES /usr/local/lib/libgmock.a /usr/local/lib/libgmock_main.a /usr/local/lib/libgtest.a /usr/local/lib/libgtest_main.a)
Run Code Online (Sandbox Code Playgroud)
现在的问题是我的主管建议我找到仅使用查找包来运行代码的解决方案。在做了一些研究之后,我才知道FindGMock.cmakeCmake 模块中缺少该文件。我添加了它并使用 再次运行代码find_package(),但它仍然无法正常工作。
错误是对 Gmock 和 Gtest 功能的未定义引用。
例如 :
undefined reference to `testing::Message::Message()'.
undefined reference to testing::internal::GetBoolAssertionFailureMessage.
undefined reference totesting::internal::AssertHelper::~AssertHelper()'
Run Code Online (Sandbox Code Playgroud)
这样的错误太多了。
谁能解释一下,如何让 CMake 自动找到 GMock 包?