zoukankan      html  css  js  c++  java
  • XCode import头文件出现这么一个问题

    XCode
    import头文件出现这么一个问题:
    用实例来说明

    【环境】
    OS X 10.8.2
    XCode4.5
    Svn版本控制

    【Svn目录】
    原有目录关系如下:
    [Base]---->[Reserve]---->[Game]
                ---->{A.h,A.m,B.h,B.m},其中B.m文件import "A.h"

    【应用原有拓展】
    由于新项目在原有项目基础上扩展开发,那么新项目保留[Base]---->[Reserve]相关代码
    在[Base]平级新增如下目录
    [newPrj]---->[Reserve]---->[Game]
                ---->{A.h,A.m,B.h,B.m}
    由于A.h,A.m文件在当前项目中的实现与[Base]有差异,且不能应用到[Base]
    那么需要新增一个目录,最后效果如下
    [newPrj]---->[Reserve]---->[Game]
                ---->{A.h,A.m,B.h,B.m}
            ---->[Extra]  ---->[Game]
                ---->{A.h,A.m}

    在xcode中,工程项目如下处理:
    1、删除原有[Reserve]---->[Game]中A.h,A.m的引用
    2、添加[Extra]  ---->[Game]的A.h,A.m的引用

    这个时候点击B.m文件在定位A.h,一直指向[Reserve]---->[Game]中的A.h,而且由于A.h在[Reserve]和[Extra]差异性实现导致一些引用失败从而编译失败
    比如:
    [Base]:    A.h引用第3方库K.h
    [newPrj]:    A.h不用第3方库K.h,且项目也没有引用第3方库
    这个时候,编译,一直会让你找K.h,因为:B.m文件在定位A.h,一直指向[Reserve]---->[Game]中的A.h,不是[Extra]  ---->[Game]中的A.h

    PS:如果两个目录中A.h都一样就不会存在这类问题。

    如何解决这个问题:
    1、先进入[Base]项目
    新增目录[Header],效果如下
    [Base]---->[Reserve]---->[Game]
                ---->{A.h,A.m,B.h,B.m}
          ---->[Reserve]---->[Header]
                ---->{libCommon.h},这个文件有这么一句话#import "A.h"            
                
    注意,B.m文件修改成import "libCommon.h"
    当然编译成功的,checkin
    2、在[newPrj]项目下拉最新,效果如下
    [newPrj]---->[Reserve]---->[Game]
                ---->{A.h,A.m,B.h,B.m}
            ---->[Reserve]---->[Header]
                ---->{libCommon.h}
            ---->[Extra]  ---->[Game]
                ---->{A.h,A.m}
    [newPrj]项目工程把[Header]引用到项目中,再点击B.m文件在定位A.h,这个时候会定位到[Extra]  ---->[Game]中的A.h

    当然,这样也算解决了问题

    只是以后的编写上来说,相对复杂了一些

    最后,希望XCode编译器能解决这个问题,应该是头文件路径定位的优先级问题


    无论生活、还是技术,一切都不断的学习和更新~~~努力~
  • 相关阅读:
    mvn package打包提示:Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources
    [Android] 【手机定位他迹】最新破解版 ,解锁VIP会员,去除广告绿化等等
    Python编程:从入门到实践超清版及全书源代码
    Win11永久激活工具 (可激活win10) + 注册码+Win11 正式版发布 版本号22000.194
    通过命令为 Elementary OS 窗口添加最小化按钮
    inno setup 通过指针获取完整字符串(宽字节字符)
    竹子开花
    屋后有靠山生万福
    自然吸气和涡轮增压哪个好 按需选择是关键
    父母对钱的态度,影响孩子的一生
  • 原文地址:https://www.cnblogs.com/GoGoagg/p/3042893.html
Copyright © 2011-2022 走看看