小编Fre*_*per的帖子

将 Googletest 添加到现有的 CMake 项目

我无法将 googletest 集成到我现有的项目中。我整理了一个简单的项目来表示我的项目结构:

项目结构

项目结构图片(没有10个代表不能直接发布)

CMakeLists.txt:

cmake_minimum_required(VERSION 3.13)
project(TestTester)
set(CMAKE_CXX_STANDARD 14)

include_directories(existing_source)
add_subdirectory(existing_source)
add_subdirectory(new_test_source)
Run Code Online (Sandbox Code Playgroud)

existing_source/CMakeLists.txt:

cmake_minimum_required(VERSION 3.13)
project(Test_TestTester)
set(CMAKE_CXX_STANDARD 14)

add_executable(TestTester main.cpp existing.h)
Run Code Online (Sandbox Code Playgroud)

new_test_source/CMakeLists.txt:

cmake_minimum_required(VERSION 3.13)
project(Test_TestTester)
set(CMAKE_CXX_STANDARD 14)

find_package(PkgConfig REQUIRED)
pkg_check_modules(gtest REQUIRED gtest>=1.8.1)

SET(CMAKE_CXX_FLAGS -pthread)
enable_testing()

include_directories(${gtest_INCLUDE_DIRS})

add_executable(Test_TestTester main_test.cpp ../existing_source/existing.h)
target_link_libraries(Test_TestTester ${gtest_LIBRARIES})
add_test(NAME Test COMMAND Test_TestTester)
Run Code Online (Sandbox Code Playgroud)

existing_source/existing.h

#ifndef TESTTESTER_EXISTING_H
#define TESTTESTER_EXISTING_H

int sample() {
    return 1;
}

#endif //TESTTESTER_EXISTING_H
Run Code Online (Sandbox Code Playgroud)

existing_source/main.cpp

#include <iostream>
#include "existing.h"

int main() {
    std::cout << "sample() output = " << sample() << std::endl;
    return 0;
} …
Run Code Online (Sandbox Code Playgroud)

cmake googletest c++14

5
推荐指数
1
解决办法
4472
查看次数

标签 统计

c++14 ×1

cmake ×1

googletest ×1