我对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中配置的东西吗?