如何编译google test的例子
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何编译google test的例子相关的知识,希望对你有一定的参考价值。
参考技术A Cmake generates native build scripts. 先建立mybuild目录# cd /usr/src/gtest-1.5.0
# mddir mybuild
# cd mybuild
(1) only generate gtest_unittest
# cmake /usr/src/gtest-1.5.0 //generate Makefile
# make //generate executable file gtest_unittest
(2) generate gtest_unittest and all samples
//generate Makefile with Google Test's samples to be compiled
# cmake -Dbuild_gtest_samples=ON /usr/src/gtest-1.5.0
//generate executable files gtest_unittest, sample1_unittest, sample2_unittest, ...
# make
Reference
http://code.google.com/p/googletest
../readme
Appendix. 使用CMake编译gtest_unittest和samples
//生成Makefile文件
root@yu29:/usr/src/gtest-1.5.0/mybuild# cmake -Dbuild_gtest_samples=ON /usr/src/gtest-1.5.0
-- The CXX compiler identification is GNU
-- The C compiler identification is GNU
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Looking for include files CMAKE_HAVE_PTHREAD_H
-- Looking for include files CMAKE_HAVE_PTHREAD_H - found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Found PythonInterp: /usr/bin/python2.6
-- Configuring done
-- Generating done
-- Build files have been written to: /usr/src/gtest-1.5.0/mybuild
root@yu29:/usr/src/gtest-1.5.0/mybuild# ls
CMakeCache.txt CMakeFiles cmake_install.cmake CTestTestfile.cmake Makefile
//编译
root@yu29:/usr/src/gtest-1.5.0/mybuild# make
Scanning dependencies of target gtest
[ 5%] Building CXX object CMakeFiles/gtest.dir/src/gtest-all.cc.o
Linking CXX static library libgtest.a
[ 5%] Built target gtest
Scanning dependencies of target gtest_main
[ 11%] Building CXX object CMakeFiles/gtest_main.dir/src/gtest_main.cc.o
...
//生成了所有samples的可执行程序
root@yu29:/usr/src/gtest-1.5.0/mybuild# ls
CMakeCache.txt libgtest.a sample2_unittest sample7_unittest
CMakeFiles libgtest_main.a sample3_unittest sample8_unittest
cmake_install.cmake Makefile sample4_unittest sample9_unittest
CTestTestfile.cmake sample10_unittest sample5_unittest
gtest_unittest sample1_unittest sample6_unittest
//看看sample2的执行结果
root@yu29:/usr/src/gtest-1.5.0/mybuild# ./sample2_unittest
Running main() from gtest_main.cc
[==========] Running 4 tests from 1 test case.
[----------] Global test environment set-up.
[----------] 4 tests from MyString
[ RUN ] MyString.DefaultConstructor
[ OK ] MyString.DefaultConstructor (0 ms)
[ RUN ] MyString.ConstructorFromCString
[ OK ] MyString.ConstructorFromCString (0 ms)
[ RUN ] MyString.CopyConstructor
[ OK ] MyString.CopyConstructor (0 ms)
[ RUN ] MyString.Set
[ OK ] MyString.Set (0 ms)
[----------] 4 tests from MyString (0 ms total)
[----------] Global test environment tear-down
[==========] 4 tests from 1 test case ran. (1 ms total)
[ PASSED ] 4 tests.
//gtest_unittest的执行结果较长,此处不再显示。本回答被提问者和网友采纳
如何使用 ARM 的 IAR 编译器编译 Google Test
【中文标题】如何使用 ARM 的 IAR 编译器编译 Google Test【英文标题】:How to compile Google Test using IAR compiler for ARM 【发布时间】:2016-03-19 10:13:11 【问题描述】:我正在尝试使用适用于 ARM 的 IAR 编译器来编译 Google 测试框架,但我遇到了与缺少 pthread 等系统库相关的困难。
有没有人能够使用 ARM 的 IAR 编译器编译 Google 框架?
【问题讨论】:
【参考方案1】:过去几天我一直在尝试让 GoogleTest 工作,以便我可以使用模拟器在 IAR 中对我们的 ARM 微控制器执行单元测试,但我已经放弃了。正如您所说,我遇到了 IAR 工具链中不可用的线程和库等问题。
相反,我们决定继续使用另一个我们迄今已成功使用的名为CppUTest 的框架。它还提供了一个我们已经能够使用的模拟框架。 CppUTest 还可以使用 GoogleMock 模拟框架(我还没有尝试过)。
我们已经证明我们能够使用 GCC 和 IAR 来使用 CppUTest,这使我们能够使用 GCC 提供的 GCOV 功能,然后切换到 IAR 编译器来验证代码是否可以为我们的目标编译。
我找到了一本很好的参考书:Test Driven Development for Embedded C by James W. Grenning。它同时使用 CppUTest 和 Unity 作为其单元测试框架示例。
可能还有很多其他框架也可以正常工作,我们选择了 CppUTest,因为书中有示例,它可以满足我们目前所需的一切。
我知道这不是您要找的答案,但希望对您有所帮助!
【讨论】:
以上是关于如何编译google test的例子的主要内容,如果未能解决你的问题,请参考以下文章
图解 Google V8 # 20 :垃圾回收:V8的两个垃圾回收器是如何工作的?
Linux下Google Test (GTest)测试环境搭建步骤