支付宝出现的'openssl/asn1.h file not found'的问题
按照支付宝官网配置流程的会遇到'openssl/asn1.h file not found'的问题
本人第一次集成支付宝,遇到一点小问题,在网上找了一些资料终于找到了解决方。需要在Header Search Paths中添加openssl文件夹的路径
如果把openssl这个文件导入到了这个工程目录下 :项目名称/XX文件夹/支付宝SDK/openssl ,
那么在Header Search Paths 的设置就得改为 "$(SRCROOT)/项目名称/XX文件夹/支付宝SDK",
看官方的demo中吧openssl这个文件放到了项目根目录下,所以"Header Search Paths"只需要设置为:"$(SRCROOT)/项目名称"
也有一些资料说使用$(PROJECT_DIR)代替$(SRCROOT),发现二者都可以。
注意:Header Search Paths中设置路径只需要设置到openssl的父文件夹就可以了,并且要用""括起来.
本人因忽略这个小细节搞了一个多小时。
$(PROJECT_DIR)和$(SRCROOT)区别:
有人说:
$(SRCROOT)代表的是项目根目录下
$(PROJECT_DIR)代表的是整个项目
也有人说:
$(SRCROOT)宏和$(PROJECT_DIR)宏都指xxx.xcodeproj所在的父目录
Xcode Build Search Paths设置
include < > 引用编译器的类库路径下的头文件
include " " 引用工程目录的相对路径的头文件
include 是编译指令,在编译时,编译器会将相对路径替换成绝对路径,因此,头文件绝对路径=搜索路径+相对路径。
Xcode Build Settings 下 Search Paths设置搜索路径
Header Search Paths:头文件搜索路径设置
$(SRCROOT)宏和$(PROJECT_DIR)宏都指xxx.xcodeproj所在的父目录
例如:引用工程testDemo/scr/test.h 头文件,
Header Search Paths中添加$(SRCROOT),引用为include “scr/test.h"
如果在Header Search Paths中添加$(SRCROOT)/scr,那么头文件引用直接引用 include “test.h