mac openssl 找不到头文件解决方法

os x从10.10更新到10.11后,原有代码编译报错,#include <openssl/ssl.h>等头文件无法找到: "openssl/ssl.h: No such file or directory".

原有环境:os x10.10+Xcode6

更新后的环境:os x10.11+Xcode7, Qt5.3.1+Qt Creator 3.3.0

 

解决办法:

1.命令行执行:xcode-select —install,安装xcode命令行工具,/usr路径下出现include目录 (如果原来/usr/include目录已经存在,跳过这一步);

   /usr/include/openssl目录里包含了相关的头文件

2.在/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/路径下创建openssl目录;

3.把 /usr/include/openssl路径下的所有文件拷贝到刚建立的openssl目录下;

 

原因:

os x10.11开始,苹果sdk中不再提供openssl,在Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include路径下是找不到原有的openssl目录的。

"

Sadly, it looks like we're not supposed to use it any more.  As you say, it's included in the 10.10 SDK, but is deliberately missing from the 10.11 SDK.

http://lists.apple.com/archives/macnetworkprog/2015/Jun/msg00025.html

"

 

参考:

1.https://forums.developer.apple.com/thread/3897

2.http://stackoverflow.com/questions/14655154/mac-os-x-lion-does-not-have-usr-include-folder

 

另外升级后,Qt Creator中编译会报找不到<sys/time.h>等系统头文件,修改~/Qt5.3.1/5.3/clang_64/mkspecs/qdevice.pri文件,把macsox10.10改为macosx10.11即可以解决问题。


### 支付宝沙箱环境下SDK依赖缺失解决方案 在支付宝沙箱环境中遇到SDK依赖缺失的问题,通常是因为开发环境未正确配置或缺少必要的库文件。以下是针对该问题的具体分析和解决方法: #### 1. 确认Python环境及SDK版本 确保当前使用的Python环境满足`python-alipay-sdk`的要求,并且已正确安装最新版的SDK。可以通过以下命令更新并验证SDK是否正常安装: ```bash pip install python-alipay-sdk --upgrade ``` 如果安装过程中出现问题,可能需要检查网络连接或代理设置[^4]。 #### 2. 检查沙箱环境配置 沙箱环境中的应用ID(App ID)、商户私钥、支付宝公钥等参数需与实际测试账号匹配。这些信息可以在支付宝开放平台的沙箱管理界面获取[^1]。具体路径如下: - 登录 [支付宝开放平台](https://openhome.alipay.com/)。 - 进入 **沙箱环境** -> **应用详情** 页面。 - 复制对应的应用ID以及密钥对用于本地配置。 #### 3. 添加必要依赖项 某些情况下,即使安装了`python-alipay-sdk`,仍可能出现依赖缺失的情况。这可能是由于底层加密库(如OpenSSL)未正确加载所致。以下是常见解决措施: - **Mac/Linux 平台**: 安装 OpenSSL 开发包。 ```bash brew install openssl export LDFLAGS="-L/usr/local/opt/openssl/lib" export CPPFLAGS="-I/usr/local/opt/openssl/include" ``` - **Windows 平台**: 下载预编译的 OpenSSL 库,并将其路径添加到系统的 `PATH` 变量中[^5]。 #### 4. 验证项目结构完整性 对于基于 Gin 框架或其他 Web 框架构建的项目,应确保所有相关文件均已正确导入。例如,在引入支付宝 SDK 后,还需调整项目的 Build Settings 或 Search Paths 设置以支持外部头文件引用[^5]: ```plaintext Header Search Paths: $(PROJECT_DIR)/<YourProjectName>/Alipay ``` #### 5. 测试代码示例 以下是一个简单的 Python 示例程序,展示如何初始化支付宝沙箱环境下的支付对象: ```python from alipay import AliPay app_private_key_string = open("path/to/app_private_key.pem").read() alipay_public_key_string = open("path/to/alipay_public_key.pem").read() alipay = AliPay( appid="your_sandbox_app_id", app_notify_url=None, app_private_key_string=app_private_key_string, alipay_public_key_string=alipay_public_key_string, sign_type="RSA2", # 使用 RSA2 加密算法 debug=True # 是否启用沙箱模式 ) order_string = alipay.api_alipay_trade_page_pay( out_trade_no="test_order_123456789", total_amount=0.01, subject="Test Payment", return_url="http://localhost/callback" ) print(order_string) ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值