再转一篇gtest1.6安装

http://www.cppblog.com/izualzhy/archive/2012/07/31/185772.html

googletest是一个用来写C++单元测试的框架,它是跨平台的,可应用在windows、linux、Mac等OS平台上。下面,我来说明如何使用最新的1.6版本gtest写自己的单元测试。

源码的获取地址:

http://code.google.com/p/googletest/downloads/list

注意1.6这个版本不再提供make install,直接看README吧。

那么怎么编译呢?

先进入gtest目录(解压gtest.zip包过程就不说了),执行以下两行命令:

g++ -I./include -I./ -c ./src/gtest-all.cc

ar -rv libgtest.a gtest-all.o

 

碰到的问题:

/gtest-1.6.0/make$ make
g++ -I../include -g -Wall -Wextra -lpthread sample1.o sample1_unittest.o gtest_main.a -o sample1_unittest
gtest_main.a(gtest-all.o): In function `~ThreadLocal':下载了gtest1.5,gtest1.6,直接到make目录下执行make,总是报错如下:
/home/gary/share/gtest-1.6.0/make/../include/gtest/internal/gtest-port.h:1336: undefined reference to `pthread_getspecific'

原因是:

-lpthread的位置不对
g++ -I../include -g -Wall -Wextra sample1.o sample1_unittest.o gtest_main.a -o sample1_unittest –lpthread

这个主要是跟编译器获取符号有关,要满足先使用后定义才行。具体来讲就是,如果pthread在前面,编译器看到pthread_getspecific符号没有用到会丢弃掉,后面看到gtest-port需要,但pthread库已经被scan一遍并丢弃。

转载于:https://www.cnblogs.com/code-style/p/3374607.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值