vs - vs2015编译gtest-v1.12.1

2024-06-09 13:44
文章标签 编译 vs vs2015 gtest v1.12

本文主要是介绍vs - vs2015编译gtest-v1.12.1,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • vs - vs2015编译gtest-v1.12.1
    • 概述
    • 点评
    • 笔记
    • 将工程迁出到本地后,如果已经编译过工程,将工程Revert, Clean up 干净。
    • 编译用的CMake, 优先用VS2019自带的
    • 打开VS2015X64本地命令行
    • 编译gtest工程
    • 测试
    • 安装
    • 自己写个测试工程,看看编译出来的gTest库是否正确
    • 测试工程代码
    • 备注
    • END

vs - vs2015编译gtest-v1.12.1

概述

前几天,有个同学私信我,问我在不在?
你谁啊,我在不在关你啥事啊? 我们认识么? 我们熟么? 凭啥理你啊? 秒删。

今天碰巧看到他在csdn上留的帖子,大概知道他要解决啥问题了。
在这里插入图片描述
在这里插入图片描述
他遇到的问题是用VS2015编译gtest1.12.1编译不过。

他提问题的方式有问题。
只说不行(如果行你就不提问题了)。
哪里不行啊?具体啥现象啊?
你具体咋操作的, 引起的不行啊?
就说不行,谁知道哪不行啊?
这样的帖子,除了吃饱了撑的2B, 谁会去回帖?

看到帖子下面,有2个所问非所答的回帖,都不知道这些回帖的人图个啥, 我被帖子双方的行为深深的震撼, 表示看不懂
有这个垃圾回帖的时间,悠闲的喝口水,安安静静的做个美男子不好么?

大家讨论问题,你要问就好好的问,我如果准备要要回答就好好的回答。
当然你可以好好的问,但是别人可以保留不回答的权利(大家萍水相逢,互不相欠。大家都有自己的事情要做, 没那个时间和心情)。

点评

这样的问题基本不需要问别人,只要开源库官方保证了可以用VS2015编译过,那就是一定能编译过。
那么大个google厂, 不骗工程师的。
在这里插入图片描述

如果编译不过,自己换几个CMake版本再试试,没特别的。
这种基础的编译问题,你问别人,大概率不会有人理你的(有质量的回答,垃圾回帖除外)。除非人家不经意的看到,心情还可以,在闲时说2句。
官方文档都说能编译过,为啥你编译不过?

笔记

将工程迁出到本地后,如果已经编译过工程,将工程Revert, Clean up 干净。

在这里插入图片描述
确认自己要编译的是gtest1.12.1
在这里插入图片描述

编译用的CMake, 优先用VS2019自带的

提取VS2019自带CMake的方法见笔记(vs2019 - 替换vs2019自带的cmake)
只要找到CMake的位置,拷贝出来用就行。

C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake

我将VS2019的CMake拷贝到磁盘的单独位置,给其他命令行用。
在这里插入图片描述
VS2013/VS2015/VS2017是没有内建CMake的。
VS2019的这个CMake版本是 3.20.21032501-MSVC_2 ,不是公版的CMake, 是MS针对VS做了优化适配的版本。
如果用VS2019自带的这个 CMake-3.20.21032501-MSVC_2 可以,就优先用。
如果不行,再尝试自己换公版的CMake。

打开VS2015X64本地命令行

在这里插入图片描述
先确认一下,vs2015X64本地命令行是没有CMake的。

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC>cmake --version
'cmake' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

将自己整理的VS2019CMake位置加入path.

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC>set path=D:\my_dev\devToolSet\CMake_3d2_vs2019\bin;%path%

再确认一下,用的是不是VS2019自带的CMake?

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC>cmake --version
cmake version 3.20.21032501-MSVC_2CMake suite maintained and supported by Kitware (kitware.com/cmake).

切到gTest库目录

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC>cd /d D:\3rd_prj\googletestD:\3rd_prj\googletest>

建立构建文件夹my_build

cls && mkdir .\my_build && cd .\my_build

用CMake构建VS2015版的gTest工程

cmake .. -G "Visual Studio 14 2015 Win64"
D:\3rd_prj\googletest\my_build>cmake .. -G "Visual Studio 14 2015 Win64"
-- Selecting Windows SDK version 10.0.14393.0 to target Windows 10.0.19045.
-- The C compiler identification is MSVC 19.0.24247.2
-- The CXX compiler identification is MSVC 19.0.24247.2
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Python: C:/Users/chenx/AppData/Local/Programs/Python/Python310/python.exe (found version "3.10.7") found components: Interpreter
-- Looking for pthread.h
-- Looking for pthread.h - not found
-- Found Threads: TRUE
-- Configuring done
-- Generating done
-- Build files have been written to: D:/3rd_prj/googletest/my_buildD:\3rd_prj\googletest\my_build>

构建成功
在这里插入图片描述
在这里插入图片描述
用VS2015打开构建好的googletest-distribution.sln
在这里插入图片描述
选择x64_release
在这里插入图片描述

编译gtest工程

在这里插入图片描述
编译成功
在这里插入图片描述

测试

在这里插入图片描述

在这里插入图片描述
工程显示没有测试用例。
不管了,只要能编译过,就没问题的,工程品质由开源作者来保证。

安装

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
将 C:\Program Files\googletest-distribution 目录归档,供自己的工程用。

自己写个测试工程,看看编译出来的gTest库是否正确

在这里插入图片描述
在这里插入图片描述
工程选为x64_Release,要和gTest库的编译模式匹配,否则编译不过。
在这里插入图片描述
在用VS2015编译时,我没有选编译方式,用的默认的。
在测试工程中发现,gTest的releaseX64库选的是/MT,
先将工程改成/MT
等测试通过了,再编译gTest库选项为/MD, 这自己工程的代码产生模式要一致。
在这里插入图片描述
编译通过了
在这里插入图片描述

测试工程代码

// gTestCaseB.cpp : Defines the entry point for the console application.
//#include "stdafx.h"// gTest工程的Main函数在库中,只需要提供测试用例即可
//int main()
//{
//    return 0;
//}// 将gTest的include目录加入编译器选项(c++包含路径)
// D:\my_dev\my_local_git_prj\soft\exp\exp015_gtest\gTestCaseB\googletest-distribution\include// 将gTest的lib目录加入编译器选项(c++库路径)
// 将 D:\my_dev\my_local_git_prj\soft\exp\exp015_gtest\gTestCaseB\googletest-distribution\lib#include "gtest/gtest.h"
#pragma comment(lib, "gtest.lib")
#pragma comment(lib, "gtest_main.lib")TEST(MyTestSuiteA, MyTestCaseA)
{int x = 1;int y = 2;ASSERT_TRUE(3 == (x + y));
}

在cmd中运行 D:\my_dev\my_local_git_prj\soft\exp\exp015_gtest\gTestCaseB\x64\Release\gTestCaseB.exe

C:\Users\me>D:\my_dev\my_local_git_prj\soft\exp\exp015_gtest\gTestCaseB\x64\Release\gTestCaseB.exe
Running main() from D:\3rd_prj\googletest\googletest\src\gtest_main.cc
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from MyTestSuiteA
[ RUN      ] MyTestSuiteA.MyTestCaseA
[       OK ] MyTestSuiteA.MyTestCaseA (0 ms)
[----------] 1 test from MyTestSuiteA (0 ms total)[----------] Global test environment tear-down
[==========] 1 test from 1 test suite ran. (1 ms total)
[  PASSED  ] 1 test.

说明gTest库是可以正常用的。

备注

用CMake默认产生的工程,编译方式中的代码产生方式,可能和自己工程中的不一样。
需要调整为自己工程一致的代码产生方式。
在这里插入图片描述

END

这篇关于vs - vs2015编译gtest-v1.12.1的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1045344

相关文章

Android平台播放RTSP流的几种方案探究(VLC VS ExoPlayer VS SmartPlayer)

技术背景 好多开发者需要遴选Android平台RTSP直播播放器的时候,不知道如何选的好,本文针对常用的方案,做个大概的说明: 1. 使用VLC for Android VLC Media Player(VLC多媒体播放器),最初命名为VideoLAN客户端,是VideoLAN品牌产品,是VideoLAN计划的多媒体播放器。它支持众多音频与视频解码器及文件格式,并支持DVD影音光盘,VCD影

maven 编译构建可以执行的jar包

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」👈,「stormsha的知识库」👈持续学习,不断总结,共同进步,为了踏实,做好当下事儿~ 专栏导航 Python系列: Python面试题合集,剑指大厂Git系列: Git操作技巧GO

Windows环境利用VS2022编译 libvpx 源码教程

libvpx libvpx 是一个开源的视频编码库,由 WebM 项目开发和维护,专门用于 VP8 和 VP9 视频编码格式的编解码处理。它支持高质量的视频压缩,广泛应用于视频会议、在线教育、视频直播服务等多种场景中。libvpx 的特点包括跨平台兼容性、硬件加速支持以及灵活的接口设计,使其可以轻松集成到各种应用程序中。 libvpx 的安装和配置过程相对简单,用户可以从官方网站下载源代码

Golang test编译使用

创建文件my_test.go package testsimport "testing"func TestMy(t *testing.T) {t.Log("TestMy")} 通常用法: $ go test -v -run TestMy my_test.go=== RUN TestMyTestMy: my_test.go:6: TestMy--- PASS: TestMy (0.

C++/《C/C++程序编译流程》

程序的基本流程如图:   1.预处理        预处理相当于根据预处理指令组装新的C/C++程序。经过预处理,会产生一个没有宏定义,没有条件编译指令,没有特殊符号的输出文件,这个文件的含义同原本的文件无异,只是内容上有所不同。 读取C/C++源程序,对其中的伪指令(以#开头的指令)进行处理将所有的“#define”删除,并且展开所有的宏定义处理所有的条件编译指令,如:“#if”、“

编译linux内核出现 arm-eabi-gcc: error: : No such file or directory

external/e2fsprogs/lib/ext2fs/tdb.c:673:29: warning: comparison between : In function 'max2165_set_params': -。。。。。。。。。。。。。。。。。。 。。。。。。。。。。。。。 。。。。。。。。 host asm: libdvm <= dalvik/vm/mterp/out/Inte

QT 编译报错:C3861: ‘tr‘ identifier not found

问题: QT 编译报错:C3861: ‘tr’ identifier not found 原因 使用tr的地方所在的类没有继承自 QObject 类 或者在不在某一类中, 解决方案 就直接用类名引用 :QObject::tr( )

hector_quadrotor编译总结 | ubuntu 16.04 ros-kinetic版本

hector_quadrotor编译总结 | ubuntu 16.04 ros-kinetic版本 基于Ubuntu 16.04 LTS系统所用ROS版本为 Kinetic hector_quadrotor ROS包主要用于四旋翼无人机的建模、控制和仿真。 1.安装依赖库 所需系统及依赖库 Ubuntu 16.04|ros-kinetic|Gazebo|gazebo_ros_pkgs|ge

hector_quadrotor编译总结 | ubuntu 14.04 ros-indigo版本

hector_quadrotor编译总结 | ubuntu 14.04 ros-indigo版本 基于Ubuntu 14.04 LTS系统所用ROS版本为 Indigo hector_quadrotor ROS包主要用于四旋翼无人机的建模、控制和仿真。 备注:两种安装方式可选:install the binary packages | install the source files

编译和链接那点事下

http://www.0xffffff.org/?p=357 上回书我们说到了链接以前,今天我们来研究最后的链接问题。         链接这个话题延伸之后完全可以跑到九霄云外去,为了避免本文牵扯到过多的话题导致言之泛泛,我们先设定本文涉及的范围。我们今天讨论只链接进行的大致步骤及其规则、静态链接库与动态链接库的创建和使用这两大块的问题。至于可执行文件的加载、可执行文件的运行时