使用Google测试时未定义的_unwind_resume参考

时间:2014-12-26 15:56:54

标签: c++ unit-testing gcc codeblocks mingw32

我在台式机上为一些测试驱动的开发设置了Google测试,一切顺利。现在我离家了,我已经下载了我的代码,并在我的笔记本电脑上以相同的方式设置谷歌测试,一切都不顺利。 Google测试编译得很好,但在编译我的测试时,我得到了“未定义的对_unwind_resume的引用”消息。

我的台式机和笔记本电脑都在运行带有最新MinGW的Windows 7,我按照相同的步骤设置了它。我正在使用Code :: Blocks来编译测试。

这是我用来编译Google测试和模拟库的原因:

  

g ++ -IC:\ Codes \ programs \ gmock-1.6.0 \ gtest / include -IC:\ Codes \ programs \ gmock-1.6.0 \ gtest -IC:\ Codes \ programs \ gmock-1.6.0 / include -IC:\ Codes \ programs \ gmock-1.6.0 -c C:\ Codes \ programs \ gmock-1.6.0 \ gtest / src / gtest-all.cc

     

g ++ -IC:\ Codes \ programs \ gmock-1.6.0 \ gtest / include -IC:\ Codes \ programs \ gmock-1.6.0 \ gtest -IC:\ Codes \ programs \ gmock-1.6.0 / include -IC:\ Codes \ programs \ gmock-1.6.0 -c C:\ Codes \ programs \ gmock-1.6.0 / src / gmock-all.cc

     

ar -rv libgmock.a gtest-all.o gmock-all.o

这很好,并提供了一个libgmock.a文件。然后将其链接到Code :: Blocks中的编译器设置中,并指定正确的include目录。

在Code :: Blocks中构建测试会产生以下错误:

  

C:\ Codes \ programs \ gmock-1.6.0 \ libgmock.a(gtest-all.o):gtest-all.cc :(。text + 0x17d):未定义引用_Unwind_Resume' C:\Codes\programs\gmock-1.6.0\libgmock.a(gtest-all.o):gtest-all.cc:(.text+0x193): undefined reference to _ Unwind_Resume'   C:\ Codes \ programs \ gmock-1.6.0 \ libgmock.a(gtest-all.o):gtest-all.cc :(。text + 0x2d7):未定义引用_Unwind_Resume' C:\Codes\programs\gmock-1.6.0\libgmock.a(gtest-all.o):gtest-all.cc:(.text+0x3d5): undefined reference to _ Unwind_Resume'   C:\ Codes \ programs \ gmock-1.6.0 \ libgmock.a(gtest-all.o):gtest-all.cc :(。text + 0x499):未定义引用_Unwind_Resume' C:\Codes\programs\gmock-1.6.0\libgmock.a(gtest-all.o):gtest-all.cc:(.text+0x7d6): more undefined references to _ Unwind_Resume'关注   C:\ Codes \ programs \ gmock-1.6.0 \ libgmock.a(gtest-all.o):gtest-all.cc :(。eh_frame $ _ZNK7testing8internal6StringcvSsEv + 0x13):对__gxx_personality_v0' C:\Codes\programs\gmock-1.6.0\libgmock.a(gtest-all.o):gtest-all.cc:(.eh_frame$_ZN7testing8internal6StringaSEPKc+0x13): undefined reference to __ gxx_personality_v0'的未定义引用   C:\ Codes \ programs \ gmock-1.6.0 \ libgmock.a(gtest-all.o):gtest-all.cc :(。eh_frame $ _ZN7testing8internal8FilePathC1EPKc + 0x13):对__gxx_personality_v0' C:\Codes\programs\gmock-1.6.0\libgmock.a(gtest-all.o):gtest-all.cc:(.eh_frame$_ZN7testing8internal8FilePathC1ERKNS0_6StringE+0x13): undefined reference to __ gxx_personality_v0'的未定义引用   C:\ Codes \ programs \ gmock-1.6.0 \ libgmock.a(gtest-all.o):gtest-all.cc :(。eh_frame $ _ZN7testing7MessageC1Ev + 0x13):未定义引用__gxx_personality_v0' C:\Codes\programs\gmock-1.6.0\libgmock.a(gtest-all.o):gtest-all.cc:(.eh_frame$_ZN7testing7MessageC1ERKS0_+0x13): more undefined references to __ gxx_personality_v0'关注

Code :: Blocks中的编译器标志包括-std = c ++ 11和-std = gnu ++ 11

我无法弄清楚以前我做过的事情有多么不同而且我有点卡住了。


我的问题的解决方案是Code :: Blocks显然使用了它自己的MinGW。为了解决这个问题,我去了编译器设置>>工具链可执行文件并将安装目录更改为我安装正确版本的MinGW的位置。

0 个答案:

没有答案