XCode 4.6.3中的Google测试问题
大家好,
我已将google测试集成到我的XCode项目中,以及基本的命令行工具 单元测试似乎工作正常(添加了guest.framework,正确设置了DYLD_LIBRRY_PATH)。
但是,只要我添加到对象夹具EXPECT_EQ(0,Object.PublicMember)类型 测试,我得到以下链接器错误。
Ld /Users/rinkevic/Library/Developer/Xcode/DerivedData/VeloxChemX-hbmvfkmcscchsvebxpaefvzmkvdp/Build/Products/Debug/UnitTest normal x86_64
cd /Users/rinkevic/Development/VeloxChemX
setenv MACOSX_DEPLOYMENT_TARGET 10.8
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk -L/Users/rinkevic/Library/Developer/Xcode/DerivedData/VeloxChemX-hbmvfkmcscchsvebxpaefvzmkvdp/Build/Products/Debug -F/Users/rinkevic/Library/Developer/Xcode/DerivedData/VeloxChemX-hbmvfkmcscchsvebxpaefvzmkvdp/Build/Products/Debug -F/Users/rinkevic/Development/Frameworks -F/Users/rinkevic/Development/VeloxChemX/../../Library/Frameworks -F/Users/rinkevic/Development/VeloxChemX/../Frameworks -filelist /Users/rinkevic/Library/Developer/Xcode/DerivedData/VeloxChemX-hbmvfkmcscchsvebxpaefvzmkvdp/Build/Intermediates/VeloxChemX.build/Debug/UnitTest.build/Objects-normal/x86_64/UnitTest.LinkFileList -mmacosx-version-min=10.8 -stdlib=libc++ -framework gtest -framework OpenCL -o /Users/rinkevic/Library/Developer/Xcode/DerivedData/VeloxChemX-hbmvfkmcscchsvebxpaefvzmkvdp/Build/Products/Debug/UnitTest
Undefined symbols for architecture x86_64:
"testing::internal::EqFailure(char const*, char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool)", referenced from:testing::AssertionResult testing::internal::CmpHelperEQ<int, int>(char const*, char const*, int const&, int const&) in TestCartMom.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
有什么建议我做错了吗?
答案 0 :(得分:6)
我遇到了同样的问题。
在两个项目中选择libstdc ++。
答案 1 :(得分:2)
这是因为您的单元测试项目的构建选项与gtest项目不同。 确保构建选项,例如“Apple LLVM - Language”&amp; “Apple LLVM - 语言 - C ++”都是一样的。
答案 2 :(得分:1)
此处概述了另一种解决方案:http://dennycd.me/google-test-xcode-mac-osx/通过不使用框架而是安装到/ usr / local中,为情况带来了一些理智。
请记住,必须将lib重命名为以&#39; lib&#39;开头,例如libgtest.a。
另请记住,您必须链接到libgtest.a和libgtest_main.a。没有后者,你会得到关于错过主要方法的抱怨。
关于c ++方言和库的相同评论是适用的,但我发现在制作框架并试图链接到它时很难控制这些。
答案 3 :(得分:0)
默认情况下,General.xcconfig指向10.4 SDK,将其更改为10.10已解决的问题