Я никогда не сталкивался с проблемой при тестировании своего кода с помощью gtest несколько месяцев назад, до недавнего времени я сталкивался с проблемой, когда внезапно заголовочный файл "gtest/gtest.h"
не может быть найден. Я использую putty для хранения всех моих файлов и каталогов, а каталог 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"
.