首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生成GTest时出错

生成GTest时出错
EN

Stack Overflow用户
提问于 2012-04-25 19:52:11
回答 5查看 20.1K关注 0票数 36

我试图在我的Ubuntu机器上设置GTest环境。但是在创建GTest来获取库的时候,我得到了以下错误...

代码语言:javascript
复制
som@som-VPCEH25EN:~/Workspace/CPP/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':
/home/som/Workspace/CPP/gtest-1.6.0/make/../include/gtest/internal/gtest-port.h:1336: undefined reference to `pthread_getspecific'
/home/som/Workspace/CPP/gtest-1.6.0/make/../include/gtest/internal/gtest-port.h:1340: undefined reference to `pthread_key_delete'
/home/som/Workspace/CPP/gtest-1.6.0/make/../include/gtest/internal/gtest-port.h:1336: undefined reference to `pthread_getspecific'
/home/som/Workspace/CPP/gtest-1.6.0/make/../include/gtest/internal/gtest-port.h:1340: undefined reference to `pthread_key_delete'
gtest_main.a(gtest-all.o): In function `testing::internal::ThreadLocal<std::vector<testing::internal::TraceInfo, std::allocator<testing::internal::TraceInfo> > >::GetOrCreateValue() const':
/home/som/Workspace/CPP/gtest-1.6.0/make/../include/gtest/internal/gtest-port.h:1372: undefined reference to `pthread_getspecific'
/home/som/Workspace/CPP/gtest-1.6.0/make/../include/gtest/internal/gtest-port.h:1379: undefined reference to `pthread_setspecific'
gtest_main.a(gtest-all.o): In function `testing::internal::ThreadLocal<testing::TestPartResultReporterInterface*>::CreateKey()':
/home/som/Workspace/CPP/gtest-1.6.0/make/../include/gtest/internal/gtest-port.h:1365: undefined reference to `pthread_key_create'
gtest_main.a(gtest-all.o): In function `testing::internal::ThreadLocal<std::vector<testing::internal::TraceInfo, std::allocator<testing::internal::TraceInfo> > >::CreateKey()':
/home/som/Workspace/CPP/gtest-1.6.0/make/../include/gtest/internal/gtest-port.h:1365: undefined reference to `pthread_key_create'
gtest_main.a(gtest-all.o): In function `testing::internal::ThreadLocal<testing::TestPartResultReporterInterface*>::GetOrCreateValue() const':
/home/som/Workspace/CPP/gtest-1.6.0/make/../include/gtest/internal/gtest-port.h:1372: undefined reference to `pthread_getspecific'
/home/som/Workspace/CPP/gtest-1.6.0/make/../include/gtest/internal/gtest-port.h:1379: undefined reference to `pthread_setspecific'
collect2: ld returned 1 exit status
make: *** [sample1_unittest] Error 1
EN

回答 5

Stack Overflow用户

发布于 2012-04-26 01:11:54

尝试在g++命令中将-lpthread移到gtest_main.a之后。

票数 54
EN

Stack Overflow用户

发布于 2012-12-12 06:03:49

我也遇到了同样的问题,我把Makefile中的-lpthread改成了-pthread。(我去掉了小写的“L”。)在那之后,一个'make‘编译成功,没有错误。

票数 17
EN

Stack Overflow用户

发布于 2012-07-17 18:14:53

你有没有看过Erik Smistad's excellent tutorial关于如何在Ubuntu上开始使用gtest的文章?我刚刚在(K)ubuntu 12.04上试过,它工作得很好。简而言之,您需要做的是

代码语言:javascript
复制
sudo apt-get install cmake libgtest-dev
cd /usr/src/gtest
sudo cmake CMakeLists.txt
sudo make
sudo cp *.a /usr/lib

如果您不习惯以root身份运行make和cmake,则必须将/usr/src/gtest复制到用户可写的目录中。在本教程中,Erik还提供了一个带有构建它的CMakeLists.txt的示例测试。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10315016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档