gtest / gtest.h: нет такого файла или каталога #include "gtest / gtest.h" - PullRequest
0 голосов
/ 28 октября 2019

Я никогда не сталкивался с проблемой при тестировании своего кода с помощью 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".

...