【发布时间】:2015-11-04 19:55:29
【问题描述】:
我有一个使用 libssl 的简单 C 程序。
在 Linux 上,我安装了 openssl-dev 包并使用以下行编译程序:
gcc test_libssl.c -o test_libssl -lcrypto -lssl
现在我想在我的 Mac 上做同样的事情。同一行导致:
fatal error: 'openssl/conf.h' file not found
我尝试通过 brew install openssl 使用 home-brew 安装 openssl(openssl-dev 不起作用)
这给了我:
...
==> 安装 openssl
==> 正在下载https://www.openssl.org/source/openssl-1.0.2a.tar.gz curl: (22) 请求的 URL 返回错误:404 Not Found
我找到了一个related SO question 没有答案。
我也试过
brew info openssl
并被告知
此公式仅适用于小桶。 Mac OS X 已经提供了这个软件并安装了另一个版本 并行会引起各种麻烦。
Apple 已弃用 OpenSSL,转而使用自己的 TLS 和加密库
我必须做什么/安装才能在 OS X 上编译使用 libssl 的 C 程序程序?
或者,第一个位置是个坏主意(鉴于上面的警告)?
更新:
我使用 brew 安装了 openssl。我不确定这是否是问题,但我更新了 brew。 采纳 brew 的建议
您可能应该更改 /usr/local 的所有权和权限 返回您的用户帐户。 sudo chown -R $(whoami):admin /usr/local
和this 问题考虑在内。
然后,按照@Alex Reynolds 的建议,我成功编译了
gcc test_libssl.c -o test_libssl -lssl -lcrypto -L/usr/local/opt/openssl/lib -I/usr/local/opt/openssl/include
【问题讨论】:
-
它已被弃用是有原因的...您应该在您的应用程序中创建 OSX 特定代码,使用 Apple 框架(如 libcrypto)...
-
@Macmade libcrypto 是 OpenSSL 的一部分。没有直接等效的原生库;最接近的等价物(不是很接近)是 CommonCrypto。
标签: c macos gcc homebrew libssl