解決辦法:mysql
官方文檔說須要 對「Header Search Paths」增長頭文件路徑:$(SRCROOT)/項目名稱sql
照着作了仍是出現 openssl rsa.h file not found ,後來百度了不少地方都沒有找到能解決的方法。函數
後來忽然回想起# include<>跟# include""的區別後,終於找到緣由了。工具
好比 我把openssl這個文件導入到了這個工程目錄下 :項目名稱/公共類/工具&第三方/支付寶SDK/openssl ,中間隔了三個文件夾,那麼在Header Search Paths 的設置就得改成 $(SRCROOT)/項目名 稱/公共類/工具&第三方/支付寶SDK,問題就解決了ui
再反過來看官方的demo,原來他們把openssl這個文件放到了項目根目錄下,因此「Header Search Paths」只須要設置$(SRCROOT)/項目名稱 spa
就好比這樣:orm
如:$(SRCROOT)/MobileShop/Classes/Other/Lib/alipaycdn
在集成支付寶的時候碰到了這麼一個錯誤ip
"_CreateRSADataSigner", referenced from:支付寶
解決方法是:
Tagert--Build Phases -- Compile Sources 下添加對應的.m文件
把支付寶須要的.m文件所有加上去
用include 引用頭文件時,雙引號和尖括號的區別:
1.雙引號:引用非標準庫的頭文件,編譯器首先在程序源文件所在目錄查找,若是未找到,則去系統默認目錄查找,一般用於引用用戶自定義的頭文件。
2.尖擴號:只在系統默認目錄(在Linux系統中一般爲/usr/include目錄)或者尖括號內的路徑查找,一般用於引用標準庫中自帶的頭文件。
綜上,標準庫自帶的頭文件既能夠用雙引號也能夠用尖括號,不過習慣使用尖括號,用戶自定義的頭文件只能用雙引號。
通常狀況下 這麼用:本身寫的用雙引號,第三方庫或者系統的庫的頭文件用尖括號。要否則常常會出現亂七八糟的錯誤。
我習慣用雙引號。結果今天在使用mysql的庫函數的頭文件的時候也用雙引號,雖然在附加依賴項裏面添加了頭文件的路徑,最後卻被一個找不到頭文件的錯誤搞暈了。
因此切記,只有本身寫的用雙引號