几个月前,我从未遇到过使用gtest测试代码的问题,直到最近我遇到了一个问题,即突然找不到"gtest/gtest.h"
头文件。我正在用腻子保存我的所有文件和目录,并且googletest目录与我正在编译以生成可执行文件的单元测试位于同一文件路径中。 gtest GitHub最近进行了更新,因此我不确定是否可能导致了它。我用过git submodule add <gtest URL>
,它说googletest已经存在。我一直使用cmake3 .
构建文件,但是现在我在单元测试文件中不断遇到关于TEST()
函数的错误。我认为这是因为找不到gtest目录。我还尝试使用cmake .
进行构建,但是gtest.h标头文件本身会导致大量无法跟踪的错误。显然,用cmake .
构建可以跟踪gtest.h头文件,而用cmake3 .
构建不能。我仍然不知道如何解决此错误。
这是我的CMakeLists.txt文件:
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
ADD_SUBDIRECTORY(googletest)
SET(CMAKE_CXX_STANDARD 11)
ADD_EXECUTABLE(test
unit_test.cpp
)
TARGET_LINK_LIBRARIES(test gtest)
TARGET_COMPILE_DEFINITIONS(test PRIVATE gtest_disable_pthreads=ON)
编辑::我忘了包括标题编译中的初始错误,这些错误是在分别使用cmake
或make
编译单元测试文件之后发生的。我使用以下命令g++ -std=c++11 unit_test.cpp
进行编译,结果错误为gtest/gtest.h: No such file or directory #include "gtest/gtest.h"
。