【问题标题】:"Non-portable path to file "File.h"; specified path differs in case from file name on disk" warning in bridging header after updating to Xcode 8.3“文件“File.h”的不可移植路径;指定路径与磁盘上的文件名不同”更新到 Xcode 8.3 后桥接头中的警告
【发布时间】:2017-08-21 09:03:15
【问题描述】:

我更新到 Xcode 8.3 和 Swift 3.1,并在我的桥接头文件中收到了这个警告,引用了一个 Objective-C 头文件:

文件“File.h”的不可移植路径;指定路径与磁盘上的文件名大小写不同

我该如何解决这个问题?

【问题讨论】:

    标签: ios objective-c swift xcode bridging-header


    【解决方案1】:

    原来我拼错了文件名,正确的名称是“FILE.h”而不是“File.h”。出现警告是因为即将推出 macOS 的 APFS。

    【讨论】:

    • 但是当您将文件系统升级到 APFS 时,它区分大小写并且此代码将不再编译。
    • 谢谢,我会在我的回答中包含这个。
    • 我收到了一堆这样的警告,它们都是假的。为什么它会在问题不存在时将其标记出来?
    • 我也是!该死的大写字母
    • 谢谢。根据类名重命名文件,警告消失。
    【解决方案2】:

    就我而言,!!项目文件夹名称!! 与桥接头路径不匹配。

    我变了

    项目/project-Bridging-Header.h”

    "项目/project-Bridging-Header.h"

    在 Xcode 9.3 上测试

    【讨论】:

      【解决方案3】:

      我遇到的另一个原因是库项目错误地导入了自身。例如,给定项目 MainLibrary,Main 将导入 Library:

      #import "Library/Library.h"
      

      如果 Library 尝试使用相同的导入,Non-portable path 警告将出现。删除路径部分很容易解决:

      #import "Library.h"
      

      更好的解决方法是从自身导入库需要的特定组件:

      #import "Widget.h"
      #import "NSString+Library.h" 
      

      【讨论】:

        【解决方案4】:

        在 MacOS 计算机上通过在 Ubuntu 上开发和运行的代码遇到 Qt (C++) 中的问题。

        我的项目有两个文件:server.cppServer.cpp

        解决方案是更改一个文件的名称或另一个。

        【讨论】:

          猜你喜欢
          • 2017-10-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-08-17
          • 2018-10-24
          • 1970-01-01
          • 2018-12-23
          相关资源
          最近更新 更多