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版本,需要...