Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XCode:未知类型名';屏幕';,仅当构建以供发布时,在文件';unctrl.h';_Xcode_Macos Sierra_Bridging Header - Fatal编程技术网

XCode:未知类型名';屏幕';,仅当构建以供发布时,在文件';unctrl.h';

XCode:未知类型名';屏幕';,仅当构建以供发布时,在文件';unctrl.h';,xcode,macos-sierra,bridging-header,Xcode,Macos Sierra,Bridging Header,XCode在此文件中查找错误: /opt/local/include/unctrl.h 消息:未知类型名称“SCREEN” /opt/local/include/必须位于我的标题搜索路径中。在头搜索路径中添加/usr/include/之前没有区别。XCode仍然坚持使用/opt/local/include/中的版本。在/usr/include/下找到的版本没有触发错误的行,但XCode不愿意使用该版本 XCode版本:8.3.3 为macos应用程序编译桥接头文件时出错 “清洁产品”没有区别

XCode在此文件中查找错误:

/opt/local/include/unctrl.h
消息:未知类型名称“SCREEN”

/opt/local/include/
必须位于我的标题搜索路径中。在头搜索路径中添加
/usr/include/
之前没有区别。XCode仍然坚持使用
/opt/local/include/
中的版本。在
/usr/include/
下找到的版本没有触发错误的行,但XCode不愿意使用该版本

XCode版本:8.3.3

为macos应用程序编译桥接头文件时出错

“清洁产品”没有区别

仅当将macos部署目标设置为10.12且仅在版本配置中发生此错误

  • 部署目标10.11-调试生成-无错误
  • 部署目标10.11-发布版本-无错误
  • 部署目标10.12-调试生成-无错误
  • 部署目标10.12-发布版本-错误

    • 我发现了。问题是我有几个带有框架的子项目,这些子项目的部署目标低于macos 10.12

      但是,当将主项目的部署目标设置为10.11时,子项目的部署目标仍然是混合的,因为其中一些子项目的部署目标是10.10。出于某种原因,只有当主项目的部署目标设置为10.12时,主项目的部署目标设置为10.11时,这才无关紧要


      不管是什么原因,将所有子项目和主项目的部署目标设置为10.12解决了问题。

      发生的情况是,您得到的头文件混合在一起,一些来自MacPorts安装,另一些来自系统,它们不兼容。它正在加载SDK.12版本的
      ncurses.h
      (在加载
      unctrl.h
      后定义了屏幕),但加载MacPorts版本的
      unctrl.h
      (需要定义屏幕)

      通过将MacPorts include目录指定为system include目录,我最终解决了这个问题,因此通过指定include搜索路径,它将用于include以及“”include:

      -cxx-isystem/opt/local/include
      
      而不是

      -I/opt/local/include
      

      此外,我必须在Xcode构建设置中将“Enable Modules”(启用模块)设置为“No”(否)。我解决了这个问题,完全删除了macports,改为使用自制软件。我升级了macports,它为我解决了一些问题:
      sudo port selfupdate;sudo端口升级过时