Xcode 6 - 编译并使用gtest 1.7

时间:2015-01-18 10:58:07

标签: xcode googletest

大约一周前,我从Windows和Visual Studio迁移到Mac和Xcode。我希望能够在Mac上处理我的项目,所以我决定移植它。

首先,我需要测试才能在Mac上工作,Google会提供instructions有关如何操作的信息。在使用我的Xcode构建测试后,我可以在输出目录中看到三个文件: test.framework libgtest_main .a和 libgtest.a

文档说我需要将test.framework链接到我的项目。因此,我创建了新的控制台应用程序项目并将其与test.framework文件链接。 不幸的是,我的构建失败了大约70多个问题。在我将librettist.a链接到我的项目后,它只失败了2个问题。他们在这里:

  

架构x86_64的未定义符号:
  " testing :: internal :: EqFailure(char const *,char const *,   的std :: __ 1 :: basic_string的,   std :: __ 1 :: allocator> const&,std :: __ 1 :: basic_string,std :: __ 1 :: allocator>常量和放大器;,   bool)",引用自:         在main.o ld中测试:: AssertionResult测试:: internal :: CmpHelperEQ(char const *,char const *,int const&,int const&):   没有为架构x86_64 clang找到的符号:错误:链接器   命令失败,退出代码为1(使用-v查看调用)

据我所知,链接器无法解析符号。如果我用libgtest_main.a链接我的项目,它什么都没有改变,这个错误仍在这里。那么,我该如何解决呢?

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,无法弄清楚为什么没有创建。它在某些32位代码上运行良好,所以我同样感到困惑。

那就是说,gtest包中的样本有以下注释:

  

EXPECT_EQ(预期,实际)与EXPECT_TRUE相同((预期)==   (实际))除了它将打印预期值和   断言失败时的实际值。这非常有用   调试。因此,在这种情况下,首选EXPECT_EQ。

对ASSERT_EQ和ASSERT_TRUE也是如此。因此,如果您进行替换,则在失败的情况下会丢失一些信息,但至少您可以使用它。