构建 XCTest 时找不到文件错误

Posted

技术标签:

【中文标题】构建 XCTest 时找不到文件错误【英文标题】:File not found error when building XCTest 【发布时间】:2014-08-27 05:20:06 【问题描述】:

我正在尝试为我的 ios 应用程序编写 XCTest 单元测试。我正在使用 XCode 5.1.1。

我遇到的问题是当我包含一个包含看起来像这样的头文件时 #include <google/protobuf/stubs/common.h> 抱怨找不到文件。

我在我的测试目标的标题搜索路径中包含了包含google 文件夹的目录的相关路径。我已将其标记为始终使用搜索路径并进行递归搜索。

我的应用程序目标找到了没有任何问题的路径,并且我以完全相同的方式包含它。我的单元测试类是一个 Objective-C++ 类,因为我已将文件名更改为 .mm 扩展名。

任何想法为什么我会遇到找不到文件的问题?

【问题讨论】:

google 框架可用于测试项目吗?如果不可用 我知道是什么了,请看下面的答案。 【参考方案1】:

原来我的搜索路径是错误的。我给出了我的测试目录的路径,但显然 Xcode 想要的路径来自我的项目根目录(即我的 .xcodeproj 文件所在的位置)

【讨论】:

$(PROJECT_DIR)/dir_to_header,不要使用绝对路径。【参考方案2】:

我也遇到了 XCtests 拒绝构建的问题,因为找不到标头。正如 DawnSong 所建议的, $(PROJECT_DIR) 是要走的路。选择 XCTest 目标,转到构建设置并找到“标题搜索路径”设置。 如果您的项目如下所示:

MyProject
    MyProject.xcodeproj
    FolderA
       FolderA1
       FolderA2
    FolderB

添加以下路径(在测试目标的构建设置中):

$(PROJECT_DIR)/FolderA               recursive
$(PROJECT_DIR)/FolderB               non-recursive

【讨论】:

以上是关于构建 XCTest 时找不到文件错误的主要内容,如果未能解决你的问题,请参考以下文章

在 Windows 上为 Android 构建时找不到 windows.h 文件

使用 Palantir Gradle 插件构建 Docker 容器时找不到 .jar 文件

在 Azure Devops 上运行构建时找不到资产文件 project.assets.json

发布时找不到 CSC 错误元数据文件 dll

npm 错误:通过 CLI 构建创建反应应用程序时找不到模块'.../immer.js'

构建到 IOS 的颤振时找不到 BoringSSL-GRPC.modulemap