iOS开发,导入c文件引发的Could not build module 'UIKit'问题
导致出现异常的原因是是因为工程中添加了某(第三方开源库)
一般情况下出现“Unknown type name”是头文件互相引用出现的,这里可以排除,由于源码使用是c\c++与oc混编,
考虑新的XCode编译文件类型导致的,尝试了几种方案,下面三种可以解决问题。
解决方案一:
选择所有.c文件,将属性的 identity and type 改为Objective-C Source。
解决方案二:
选择所有.c文件,将.c修改为.m
解决方案三:
将Compile Sources As 改为 Objective-C++
另外,添加第三方库一般步骤分三步:
1)拖入库文件夹,copy一份加入自己的项目
2)添加库所需要的框架或者动态链接库
3)ARC下修改编译属性 -fno-objc-arc
但是今天加入zipArchive ,按步骤加入,增加libz动态库,修改-fno-objc-arc一下报了23个错误(汗too many errors emitted, stopping now),都是expected identifier or '(' ,unknown type name 'NSString',could not build module 'Foundation',could not build module 'UIKit'。
通过百度,stackOverflow上找到解决方法:
在所在项目pch文件中,把自己所#import的头文件做如下操作
#ifdef __OBJC__
#import
#endif
分析了一下,zipArchive库是C OC C++文件混编,pch里面自加的头文件是全局性的,当在C文件import时其实是没有意义的,也就是问题出处,所以要ObjC区分开编译,这样总是就解决了。
今天在添加Redis的时候报错,参考这个修改不报错了
iOS开发,导入c文件引发的Could not build module 'UIKit'问题的更多相关文章
- iOS开发——导入c文件引起的 Unknown type name 'NSString' 错误
一般情况下出现“Unknown type name”是头文件互相引用出现的,这里不是这个,由于源码使用是c\c++与oc混编,下面三种可以解决问题方案. 解决方案一: 选择所有.c文件,将属性的 id ...
- iOS import framework头文件时报错could not build module xxx
导致这个错误的原因有多种: 1.库的search paths没有设置对. 2.库里面某些头文件找不到. 而导致.h头文件找不到的原因也有多种: (a)search paths没设置对,文件可能换过位置 ...
- 导入C文件Xcode出现Could not build module 'Foundation'错误
#ifdef __OBJC__ #import <Foundation/Foundation.h> #import "UIImageView+WebCache.h" # ...
- iOS开发网络篇—文件的上传
iOS开发网络篇—文件的上传 说明:文件上传使用的时POST请求,通常把要上传的数据保存在请求体中.本文介绍如何不借助第三方框架实现iOS开发中得文件上传. 由于过程较为复杂,因此本文只贴出部分关键代 ...
- iOS 开发http post 文件的上传
iOS开发网络篇—文件的上传 说明:文件上传使用的时POST请求,通常把要上传的数据保存在请求体中.本文介绍如何不借助第三方框架实现iOS开发中得文件上传. 由于过程较为复杂,因此本文只贴出部分关键代 ...
- iOS开发——导入第三方库引起的unknown type name 'NSString'
今天加入SVProgressHUD的第三方库的时候报了24个错误( too many errors emitted, stopping now),都是 expected identifier or ' ...
- iOS开发-- 创建podspec文件,为自己的项目添加pod支持
开篇扯淡 作为一个iOS开发者,一定用过CocoaPods吧,没用过?点这儿去面壁吧 Cocoapods作为iOS开发的包管理器,给我们的开发带来了极大的便利,而且越来越多的第三方类库支持Pod,可以 ...
- iOS开发——Swift篇&文件,文件夹操作
文件,文件夹操作 ios开发经常会遇到读文件,写文件等,对文件和文件夹的操作,这时就可以使用NSFileManager,NSFileHandle等类来实现. 下面总结了各种常用的操作: 1,遍 ...
- iOS开发-xcdatamodeld文件 CoreData的介绍和使用,sqlite的使用
CoreData的介绍和使用 源引:http://www.jianshu.com/p/d027090af00e CoreData是数据存储的一种方式,CoreData实质也是对SQLite的封装. ...
随机推荐
- exception: TypeError: Cannot read property '_modulesNamespaceMap' of undefined at getModuleByNamespac
用 Vue.extend 创造的组件构造器和组件,默认是不集成 store 和 router 的. 比如 main.js 中的这个,其实是挂载在根组件 vm 中.并不是注入到全局 Vue 中.所以你用 ...
- 阿里巴巴Java开发手册(华山版)
插件下载地址: https://github.com/alibaba/p3c 2018年9月22日,在2018杭州云栖大会上,召开<码出高效:Java 开发手册>新书发布会,并宣布将图书所 ...
- Automl基于超大数据下的数据分发方案探讨
先定义几个关键字: 任务:用户一次上传的数据集并发起的automl任务,比如一次ocr任务,一次图像分类任务. 模型:一次任务中,需要运行的多个模型,比如ocr任务,需要ctpn模型,需要crnn模型 ...
- [ERROR] ionic-app-scripts has unexpectedly closed (exit code 1).
这个错误是因为缺失 '@ionic/app-scripts',只要安装 '@ionic/app-scripts' 即可. 解决方法:npm install @ionic/app-scripts@lat ...
- qt linux 打包
本文在银河麒麟上成功运行,程序类型:Qt控制台,使用到的Qt外库:mysql数据库 1.环境一共有两台,1是编译机[装有Qt.数据库],2是运行机[纯净机] 2.在编译机上安装Qt.mysql,我这里 ...
- 【Layui】侧边菜单导航禁用折叠、去除箭头样式
官方提供的样式代码: <ul class="layui-nav layui-nav-tree" lay-filter="test"> <!-- ...
- React全家桶+Material-ui构建的后台管理系统
一.简介 一个使用React全家桶(react-router-dom,redux,redux-actions,redux-saga,reselect)+Material-ui构建的后来管理中心. 二. ...
- c++动态链接问题
https://blog.csdn.net/liu0808/article/details/81169173 https://blog.csdn.net/f110300641/article/deta ...
- Laravel实现from的curl文件转发
文件的使用curl分发时发现不能直接将其传入curl,需要使用CURLFile()来实现 分发类 <?php /** * 请求转发控制器 * Created by PhpStorm. * Use ...
- spring security实现记录用户登录时间等信息
目录 spring security实现记录用户登录时间等信息 一.原理分析 二.实现方式 2.1 自定义AuthenticationSuccessHandler实现类 2.2 在spring-sec ...