显然,OP在这里找到了答案
总之,这是一个向后兼容性问题,似乎只发生在Mac上。调用
我在Mac Catalina上运行CMake 3.20.2。我已经构建了gtest,并用sudo make install将其安装在系统上。gtest存在于/usr/include中。但当我运行cmake线路时:find_package(需要GTest(GTEST_FOUND为true,但未设置GTEST_INCLUDE_DIRS。GTEST_INCLUDE_DIRS在什么情况下被find_package调用设置或不设置?CMake文档表示,这些应该设置为结果变量,但似乎只设置了一个。
在CmakeLists.txt
中添加include_directories("GTEST_INCLUDE_DIRS")
总之,这是一个向后兼容性问题,似乎只发生在Mac上。调用
find_package(GTest REQUIRED)
后,未正确设置GTEST_INCLUDE_DIRS
变量。如果您可以编辑CMakeLists.txt
,建议使用target_link_libraries(GTest::gtest GTest::gtest_main)
而不是include_directories(${GTEST_INCLUDE_DIRS})
。