zoukankan      html  css  js  c++  java
  • iOS开发,导入c文件引发的Could not build module 'UIKit'问题

    导致出现异常的原因是是因为工程中添加了某(第三方开源库)

    一般情况下出现“Unknown type name”是头文件互相引用出现的,这里可以排除,由于源码使用是cc++与oc混编,

    考虑新的XCode编译文件类型导致的,尝试了几种方案,下面三种可以解决问题。

    解决方案一:

    选择所有.c文件,将属性的 identity and type 改为Objective-C Source。

    解决方案二:

    选择所有.c文件,将.c修改为.m

    解决方案三:

    将Compile Sources As 改为 Objective-C++

     
    方案三由于修改所有文件的编译类型,所有可能会导致其他包括c、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的时候报错,参考这个修改不报错了

     
     
     
     
     
     
  • 相关阅读:
    从RUU中提取HTC官方ROM
    AndroidRom制作(一)——Rom结构介绍、精简和内置、一般刷机过程
    写在"跳槽旺季"
    从团宝危机谈行业洗牌
    Session和Cookie的关系
    Django常用模板标签
    ASP.NET论坛调查
    SourceForge支持新的版本控制系统
    ORACLE传奇
    Linked Data下一代WWW
  • 原文地址:https://www.cnblogs.com/GJ-ios/p/11263832.html
Copyright © 2011-2022 走看看