做网站要求什么,江苏做网站,抓取工具把对手网站的长尾词,购物网站建设技术难点文章目录 vs - vs2015编译gtest-v1.12.1概述点评笔记将工程迁出到本地后#xff0c;如果已经编译过工程#xff0c;将工程Revert, Clean up 干净。编译用的CMake, 优先用VS2019自带的打开VS2015X64本地命令行编译gtest工程测试安装自己写个测试工程#xff0c;看看编译出来的… 文章目录 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\VCcmake --version
cmake 不是内部或外部命令也不是可运行的程序
或批处理文件。将自己整理的VS2019CMake位置加入path.
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VCset pathD:\my_dev\devToolSet\CMake_3d2_vs2019\bin;%path%再确认一下用的是不是VS2019自带的CMake?
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VCcmake --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\VCcd /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 Win64D:\3rd_prj\googletest\my_buildcmake .. -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\meD:\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