大约一周前,我从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链接我的项目,它什么都没有改变,这个错误仍在这里。那么,我该如何解决呢?
答案 0 :(得分:0)
我遇到了同样的问题,无法弄清楚为什么没有创建。它在某些32位代码上运行良好,所以我同样感到困惑。
那就是说,gtest包中的样本有以下注释:
EXPECT_EQ(预期,实际)与EXPECT_TRUE相同((预期)== (实际))除了它将打印预期值和 断言失败时的实际值。这非常有用 调试。因此,在这种情况下,首选EXPECT_EQ。
对ASSERT_EQ和ASSERT_TRUE也是如此。因此,如果您进行替换,则在失败的情况下会丢失一些信息,但至少您可以使用它。