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的库函数的头文件的时候也用双引号,虽然在附加依赖项里面添加了头文件的路径,最后却被一个找不到头文件的错误搞晕了。

因此切记,只有本身写的用双引号

相关文章
相关标签/搜索