iOS开发问题之:支付宝集成报错openssl/asn1.h file not found

305 阅读1分钟

支付宝出现的'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这个文件放到了项目根目录下,所以"HeaderSearchPaths"只需要设置为:"(SRCROOT)/项目名称/XX文件夹/支付宝SDK", 看官方的demo中吧openssl这个文件放到了项目根目录下,所以"Header Search Paths"只需要设置为:"(SRCROOT)/项目名称"

也有一些资料说使用(PROJECTDIR)代替(PROJECT_DIR)代替(SRCROOT),发现二者都可以。

  注意:Header Search Paths中设置路径只需要设置到openssl的父文件夹就可以了,并且要用""括起来.

(PROJECTDIR)(PROJECT_DIR)和(SRCROOT)区别:

有人说:

  $(SRCROOT)代表的是项目根目录下

  $(PROJECT_DIR)代表的是整个项目

也有人说:

   (SRCROOT)宏和(SRCROOT)宏和(PROJECT_DIR)宏都指xxx.xcodeproj所在的父目录

Xcode Build Search Paths设置 include < > 引用编译器的类库路径下的头文件

include " " 引用工程目录的相对路径的头文件

include 是编译指令,在编译时,编译器会将相对路径替换成绝对路径,因此,头文件绝对路径=搜索路径+相对路径。

Xcode Build Settings 下 Search Paths设置搜索路径

Header Search Paths:头文件搜索路径设置

(SRCROOT)宏和(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

文章转载来源:blog.csdn.net/vkooy/artic…