好久不寫了。。。
今天做項(xiàng)目,要用到OC和C++混編。
將xmlrpc和protocolBuffer的第三方庫拷到項(xiàng)目里后,一直報(bào)錯(cuò):
Lexical or Preprocessor Issue Group
之前也遇到過類似的情況,但是一直沒有做總結(jié),今天就來寫一下。
Xcode在編譯時(shí), Library / Header Search Paths是一定會(huì)去搜索的。而User Header Search Paths只有在Always Search User Paths為Yes時(shí)才會(huì)被搜索。
Project的Building Settings中得設(shè)置默認(rèn)并不被Targets繼承,只有當(dāng)Targets的設(shè)置加入了$(inherited)時(shí)才被繼承,添加目錄的時(shí)候?qū)懮?“$(inherited)” 就表示從frameworks里面讀取。
一種很常見的情況, 我建一個(gè)工程運(yùn)行正常,但是把工程發(fā)給別人就會(huì)出現(xiàn)這個(gè)錯(cuò)誤,這也是XcodeSearch Path的相對路徑和絕對路徑導(dǎo)致的。
所以在修改Library / Header Search Paths這個(gè)選項(xiàng)的時(shí)候使用:??
"$(SRCROOT)/當(dāng)前工程名字/需要包含頭文件所在文件夾"
$(SRCROOT)/Quickly/externlib
將上面的雙引號里面的字符串拷貝之后,你會(huì)發(fā)現(xiàn)這個(gè)“$(SRCROOT)”,會(huì)自動(dòng)變成當(dāng)前工程所以的目錄。這樣就可以了,發(fā)給別人,別人也不用在去修改路徑了。