Я не очень знаком с C ++, особенно с make и build.
В моем CMakeLists.txt у меня есть:
add_executable(example test_runner.cpp)
target_link_libraries(example gtest_main)
gtest_discover_tests(example)
Тогда в test_runner.cpp
У меня есть:
#include <iostream>
#include "gtest/gtest.h"
#include "sample_tests.h"
int main(int argc, char **argv)
{
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
А sample_tests.h
составляет:
#ifndef PROJECTS_SAMPLE_TESTS_H
#define PROJECTS_SAMPLE_TESTS_H
#endif //PROJECTS_SAMPLE_TESTS_H
И sample_tests.cpp - это:
#include <iostream>
#include "gtest/gtest.h"
#include "sample_tests.h"
TEST(sample_test_case, sample_test)
{
EXPECT_EQ(1, 2);
}
Итак, для меня ясно, что проблема заключается в том, что test_runner.cpp импортирует sample_tests.h, но sample_tests.h не импортирует sample_tests.cpp. Однако, насколько я понимаю, файлы .h не могут импортировать файлы .cpp. Я знаю, что sample_tests.cpp
должен реализовывать sample_tests.h
, но я не могу понять, как на самом деле связать их вместе.
Это то, что мне нужно настроить в cmakelists.txt?