GoogleTest 之路1-Generic Build Instructions编译指导总方案

准备工作

为了在你的测试中使用GoogleTest, 你必须让你的编译系统 知道到哪里去寻找GoogleTest 的头文件和源文件。

具体的方法只能依赖于你具体使用的哪种编译系统了,一般来讲这个非常容易直接的。

编译

如果你的GoogleTest 放在${GTEST_DIR} 目录下面。(使用 Visual Studio 和 Xcode)编译它产生一个库。

${GTEST_DIR}/src/gtest-all.cc

下面是对通用的编译方法解释,直接略过,参看https://github.com/google/googletest/blob/master/googletest/README.md

重点翻译

CMake方法

下载下来的Google Test 里面包含 CMake 编译脚本,只要是支持C标准的平台都可以使用。

如果没有安装CMake的话,戳下面链接下载并安装: http://www.cmake.org/.

CMake 会根据你代码所在的平台的编译器等环境 生成native的makefile 文件,当然如果你的平台安装多个编译器,你也可以在Cmake 脚本里面指定。

你既可以把Google Test 编译成一个 独立的平台(Standalone CMake Project),也可以和你要测的代码合并成一个平台。[原文:it can be incorporated into an existing CMake build for another project.]

独立的CMake Project

如果想把Google Test编译成一个独立的Project,典型的workflow如下:

mkdir mybuild       # Create a directory to hold the build output.
cd mybuild
cmake ${GTEST_DIR}  # Generate native build scripts.

如果想编译Google Test 的Samples,你应该把上面的最后一句话换成如下:

cmake -Dgtest_build_samples=ON ${GTEST_DIR}

如果你使用的是 *nix (各种linux系统),你应当会在当前目录下面看到一个Makefile文件生成,Just do it, 没错输入 make.

如果你是用的是微软的Visual Studio 并且在windows 上面,gtest.sln 和几个.vcproj 文件生成。然后用visual studio 编译它。

如果你是有钱人,用的是乔布斯的 MAC OS X 上面的 Xcode,建议你把它砸了,不.... .xcodeproj 文件生成了。

Incorporating Into An Existing CMake Project

和已有CMake Project 合并

如果你想在一个已有的CMake Project中使用 gtest(以下都叫gtest了,打字太累了),那么就给你介绍一个更强大和灵活的方法啦。

首先呢,你得在你的CMakefile 文件里面加点东西咯。当然是 add_subdirectory().   这样 cmake 在读到这句话的时候,就会说"卧槽"还有gtest 那么大一坨没有编译呢,继续工作吧。这种方法在windows 上面非常有用。想让 main build 用上 gtest这个灵丹妙药,有以下几种不同的方法:

1. 手动从github上面下载下来,把他放到某个已知的位置,但这种方法太不灵活了,你想持续集成你的系统,就GG了

2. 把gtest目录嵌入到 main project's source tree里面。这通常是一个简单有效的方法,但是如果 gtest也更新了呢?你又想用gtest里面最新的功能。有些组织也不推荐用这种方法。

3. 加一个git 子模块到gtest里。这通常也是不合适的。

4.  使用 CMake 下载 gtest 作为 编译的准备步骤。这有点复杂但是没有其他方法太多的限制。

方法就不介绍了,反正已经实现了看原文:https://github.com/google/googletest/blob/master/googletest/README.md

推荐另一个代码:https://github.com/bast/gtest-demo, 对于理解 cmake 比较有帮助

Multi-threaded Tests

Avoiding Macro Name Clashes

原文地址:https://www.cnblogs.com/qifei-liu/p/10876411.html