【问题标题】:gtest.h file not found googletest xcode 7.0gtest.h 文件未找到 googletest xcode 7.0
【发布时间】:2015-12-24 03:53:45
【问题描述】:

我正在尝试为我的 c++ 项目设置谷歌测试框架,遵循 xcode 7.0 中的 guide 我到了最后一步 Build and Go 但经过数小时的在线搜索后,我无法让我的测试项目运行。编译器似乎没有找到它需要的头文件。 main.cpp:9:10:找不到“gtest/gtest.h”文件。来源是:

#include "gtest/gtest.h"

#include "calc.hpp"

int main(int argc, const char * argv[]) {

    return 0;
}

我也试过 #include 结果一样。

【问题讨论】:

    标签: c++ xcode macos unit-testing googletest


    【解决方案1】:

    这是我如何让它工作的:

    步骤:

    1. 下载源代码$ svn checkout http://googletest.googlecode.com/svn/trunk/ googletest-read-only

    2. cd 到下载的源代码文件夹中的“make”文件夹

    3. 运行$ make gtest.a gtest_main.a
    4. 手动将两个静态库文件复制到/usr/local/lib,将头文件dir 'include/gtest'复制到/usr/local/include。
    5. 将标题搜索路径 (/usr/local/include) 和库搜索路径 (/usr/local/lib) 添加到 xcode 的项目设置中
    6. 再次为 gtest 添加链接器标志。在“其他链接器标志”下的目标设置中。添加/usr/local/lib/gtest.a

      // main.cpp
      #include <stdio.h>
      #include "gtest/gtest.h"
      #include "calc.hpp" // has function int addition(int,int);
      TEST(MyFirstTest, TestAddition) {
              EXPECT_EQ(3, addition(1, 2));
      }
      GTEST_API_ int main(int argc, char **argv) {
              printf("Running main() from gtest_main.cc\n");
              testing::InitGoogleTest(&argc, argv);
              return RUN_ALL_TESTS();
      }
      

    【讨论】:

    • 文章链接失效
    • @mortond 谢谢。我删除了文章的断开链接。这篇文章已经不存在了,所以把它放在这里也没用。
    【解决方案2】:

    有时,Xcode 在框架中找不到头文件。您需要额外的步骤才能使其正常工作。

    • 构建设置中,完成Framework Search Paths,其中包含您的框架路径,即gtest.framework。

    • 将框架路径添加到用户标头搜索路径

    • 如果 Xcode 找不到“gtest/internal/gtest-port-arch.h”,您可以在源文件夹“googletest/googletest/include”中找到它。将其添加到用户标头搜索路径

    完成这些步骤后,gtest 应该可以在 Xcode 7.0 中运行。

    【讨论】:

    • 这是框架 Headers 路径,需要进入 User Header Search Paths 例如../../googletest/gtest.framework/Headers 其中 ../.. 与您的 xcodeproj 相关
    【解决方案3】:

    尝试删除您的 DerivedData 文件夹的内容,然后重新构建。

    【讨论】:

      猜你喜欢
      • 2016-04-21
      • 2020-02-02
      • 2017-01-23
      • 1970-01-01
      • 2016-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-05
      相关资源
      最近更新 更多