XCode import標頭檔案出現這麼乙個問題

2022-03-01 15:22:41 字數 1583 閱讀 9382

xcode

import標頭檔案出現這麼乙個問題:

用例項來說明

【環境】

os x 10.8.2

xcode4.5

svn版本控制

【svn目錄】

原有目錄關係如下:

[base]---->[reserve]---->[game]

---->,其中b.m檔案import "a.h"

【應用原有拓展】

由於新專案在原有專案基礎上擴充套件開發,那麼新專案保留[base]---->[reserve]相關**

在[base]平級新增如下目錄

[newprj]---->[reserve]---->[game]

---->

由於a.h,a.m檔案在當前專案中的實現與[base]有差異,且不能應用到[base]

那麼需要新增乙個目錄,最後效果如下

[newprj]---->[reserve]---->[game]

---->

---->[extra]  ---->[game]

---->

在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]

---->

---->[reserve]---->[header]

---->,這個檔案有這麼一句話#import "a.h"            

注意,b.m檔案修改成import "libcommon.h"

當然編譯成功的,checkin

2、在[newprj]專案下拉最新,效果如下

[newprj]---->[reserve]---->[game]

---->

---->[reserve]---->[header]

---->

---->[extra]  ---->[game]

---->

[newprj]專案工程把[header]引用到專案中,再點選b.m檔案在定位a.h,這個時候會定位到[extra]  ---->[game]中的a.h

當然,這樣也算解決了問題

只是以後的編寫上來說,相對複雜了一些

最後,希望xcode編譯器能解決這個問題,應該是標頭檔案路徑定位的優先順序問題

xcode import 標頭檔案報錯

最近一直在寫android程式,有點久沒用xcode,在寫乙個專案準備把ui7kit導進去,將ios 7的介面適配到低版本的時候,出現了這麼乙個蛋疼的問題。稍微查了一下,新建專案的時候想先做乙個lib,所以建立的時候選了cocoa touch static library,導致需要在project ...

Linux標頭檔案 C C 標頭檔案

linux標頭檔案 c c 標頭檔案。linux常用標頭檔案如下 posix標準定義的標頭檔案 目錄項 檔案控制 檔名匹配型別 路徑名模式匹配型別 組檔案 網路資料庫操作 口令檔案 正規表示式 tar歸檔值 終端i o 符號常量 檔案時間 字元擴充套件型別 internet定義 套接字本地介面 in...

string標頭檔案與cstring標頭檔案

首先說string的標頭檔案 1 包裝了std的c 標頭檔案 2 舊的c標頭檔案 3 舊c標頭檔案的std版本,切記,這不是cstring的標頭檔案 詳見effective c 的第49條 再說cstring的標頭檔案 注 vc9編譯環境下 1 非mfc版本,控制台程式就用這個 2 mfc版本,需要...