Mac OS X 上的 darwinssl 库位置是什么?

Dra*_*neg 2 c++ macos curl darwin

我正在尝试编译 curl 并将其静态链接到另一个项目。我确实设法为我的 mac 架构(x86_64)编译了它并得到了“libcurl.a”。现在,当我尝试构建时:

#include <curl/curl.h>

int main()
{
  CURL *curl = curl_easy_init();
}
Run Code Online (Sandbox Code Playgroud)

使用 g++ tornado.cc -o tornado (path-to-where-it-is)libcurl.a -std=c++11

我得到:

Undefined symbols for architecture x86_64:
  "_CFArrayAppendValue", referenced from:
      _append_cert_to_array in libcurl.a(libcurl_la-darwinssl.o)
  "_CFArrayCreate", referenced from:
      _darwinssl_connect_common in libcurl.a(libcurl_la-darwinssl.o)
  "_CFArrayCreateMutable", referenced from:
      _darwinssl_connect_step2 in libcurl.a(libcurl_la-darwinssl.o)
  "_CFArrayGetCount", referenced from:
      _darwinssl_connect_common in libcurl.a(libcurl_la-darwinssl.o)
  "_CFArrayGetValueAtIndex", referenced from:
      _darwinssl_connect_common in libcurl.a(libcurl_la-darwinssl.o)
  "_CFDataCreate", referenced from:
      _append_cert_to_array in libcurl.a(libcurl_la-darwinssl.o)
Run Code Online (Sandbox Code Playgroud)

据我了解,它想获取 darwinssl 的链接,但我不知道从哪里获取这些链接。

curl 的自述文件(https://github.com/biasedbit/curl-ios-build-scripts/blob/master/README.md) - 确实提到它取决于 libz.dylib 和 Security.framework 但没有提供任何线索关于它们是什么,我何时以及如何需要它们,以及如何包含它们。

PS常规卷曲包含工作正常: g++ tornado.cc -o tornado -lcurl -std=c++11

rwo*_*ols 5

我找了些时间在 mac 上乱搞。这是对我有用的命令:

gcc main.cpp -I path/to/include path/to/libcurl.a -framework Foundation -lz -framework Security
Run Code Online (Sandbox Code Playgroud)

基本上,您需要-framework Foundation,-lz-framework Security