【问题标题】:Xcode 6 - compile and use gtest 1.7Xcode 6 - 编译和使用 gtest 1.7
【发布时间】:2015-01-18 10:58:07
【问题描述】:

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

首先,我需要测试才能在 Mac 上工作,Google 提供了 instructions 来说明如何做到这一点。使用 Xcode 构建测试后,我可以在输出目录中看到三个文件:test.frameworklibgtest_main.a 和 libgtest.a .

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

架构 x86_64 的未定义符号:
“测试::内部::EqFailure(char const*, char const*, std::__1::basic_string, std::__1::allocator > const&, std::__1::basic_string, std::__1::allocator > const&, bool)”,引用自: testing::AssertionResult testing::internal::CmpHelperEQ(char const*, char const*, int const&, int const&) 在 main.old 中: 未找到体系结构 x86_64 的符号:错误:链接器 命令失败,退出代码为 1(使用 -v 查看调用)

据我了解,链接器无法解析符号。如果我将我的项目与 libgtest_main.a 链接,它不会改变任何内容,并且此错误仍然存​​在。那么,我该如何解决呢?

【问题讨论】:

  • 我也有同样的问题。我正在尝试在 QtCreator 的 Mac OSX 上使用 gtest。

标签: xcode googletest


【解决方案1】:

我遇到了同样的问题,无法弄清楚为什么没有创建它。它在某些 32 位代码上确实可以正常工作,所以我同样感到困惑。

也就是说,gtest 包中的示例有以下注释:

EXPECT_EQ(expected, actual) 与 EXPECT_TRUE((expected) == 相同 (实际))除了它将打印期望值和 断言失败时的实际值。这对 调试。因此在这种情况下 EXPECT_EQ 是首选。

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

【讨论】:

    猜你喜欢
    • 2017-04-10
    • 2016-06-13
    • 2014-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多