openssl rsa.h file not found

屏幕快照 2015-06-30 11.48.11.png

解決辦法: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文件所有加上去

屏幕快照 2015-06-30 11.43.44.png


用include 引用頭文件時,雙引號和尖括號的區別:

1.雙引號:引用非標準庫的頭文件,編譯器首先在程序源文件所在目錄查找,若是未找到,則去系統默認目錄查找,一般用於引用用戶自定義的頭文件。

2.尖擴號:只在系統默認目錄(在Linux系統中一般爲/usr/include目錄)或者尖括號內的路徑查找,一般用於引用標準庫中自帶的頭文件。

綜上,標準庫自帶的頭文件既能夠用雙引號也能夠用尖括號,不過習慣使用尖括號,用戶自定義的頭文件只能用雙引號。

通常狀況下 這麼用:本身寫的用雙引號,第三方庫或者系統的庫的頭文件用尖括號。要否則常常會出現亂七八糟的錯誤。

我習慣用雙引號。結果今天在使用mysql的庫函數的頭文件的時候也用雙引號,雖然在附加依賴項裏面添加了頭文件的路徑,最後卻被一個找不到頭文件的錯誤搞暈了。

因此切記,只有本身寫的用雙引號

相關文章
相關標籤/搜索