linux c++11 gcc4 环境编译安装googletest/gtest v1.10

c++11对应googletest/gtest

经过测试,c++11对应版本是googletest v1.10.x

编译安装

编译环境

c 复制代码
sudo apt-get update
sudo apt-get install -y build-essential cmake

下载或git clone代码

c 复制代码
git clone https://github.com/google/googletest.git
cd googletest
git checkout tags/v1.10.x  # 切换版本,我本地是在页面下载

编译安装googletest

c 复制代码
cd googletest
mkdir build && cd build
cmake .. //默认release版本
cmake -DCMAKE_BUILD_TYPE=Debug .. //(可选)debug版本可以与release版本共存
cmake -DCMAKE_INSTALL_PREFIX=../gtest .. //(可选)指定安装目录
make
sudo make install
sudo make install DESTDIR=../gtest  //(可选)指定安装目录

使用googletest

CMakeLists.txt

c 复制代码
cmake_minimum_required(VERSION 3.10)
project(MyTest)

# 设置 C++ 标准
set(CMAKE_CXX_STANDARD 11)

# 手动指定 Google Test 的头文件和库路径
include_directories(./gtest/include)       # 头文件路径
link_directories(./gtest/lib)               # 库文件路径

# 添加可执行文件
add_executable(my_test main.cpp)

# 链接 Google Test 库和 pthread(因为 GTest 依赖 pthread)
target_link_libraries(my_test gtest.a gtest_main.a pthread)

# 如果需要动态库(.so),取消注释以下行:
# target_link_libraries(my_test gtest.so gtest_main.so pthread)

# 强制指定运行时库路径(动态库需要此配置)
# target_link_options(my_test PRIVATE "-Wl,-rpath,./gtest/lib")

main.cpp

c 复制代码
#include <gtest/gtest.h>

// 要测试的函数(示例)
int add(int a, int b) {
    return a + b;
}

// 测试用例
TEST(AddTest, PositiveNumbers) {
    EXPECT_EQ(add(2, 3), 5);
    EXPECT_GT(add(3, 2), 4);
}

// 主函数(Google Test 需要此入口)
int main(int argc, char ​**argv) {
    ::testing::InitGoogleTest(&argc, argv);
    return RUN_ALL_TESTS();
}

编译运行my_test

c 复制代码
mkdir build && cd build
cmake ..
make
./my_test
相关推荐
心随_风动20 分钟前
Debian GNU/Linux的新手入门介绍
linux·debian·gnu
XiaoyaoCarter36 分钟前
每日两道leetcode
c++·算法·leetcode·职场和发展·贪心算法
LIU_Skill37 分钟前
SystemV-消息队列与责任链模式
linux·数据结构·c++·责任链模式
矛取矛求43 分钟前
STL C++详解——priority_queue的使用和模拟实现 堆的使用
开发语言·c++
一顿操作猛如虎,啥也不是!1 小时前
Ubuntu-Linux中vi / vim编辑文件,保存并退出
linux
白-胖-子1 小时前
快速认识:数据库、数仓(数据仓库)、数据湖与数据运河
大数据·linux·数据库·数据仓库·人工智能
Non importa1 小时前
【C++】新手入门指南(下)
java·开发语言·c++·算法·学习方法
想成为大佬的每一天1 小时前
Linux系统编程 day9 SIGCHLD and 线程
linux
pp-周子晗(努力赶上课程进度版)2 小时前
【C++】特殊类的设计、单例模式以及Cpp类型转换
开发语言·c++
好巧.2 小时前
Linux 安装pm2并全局可用
linux·服务器·pm2