1

我正在开发一个使用 FTP 和 SFTP 传输的 Cocoa 应用程序,我发现完成此任务的最佳方法是使用libcurl。现在我很确定 Mac OS X 没有安装 libcurl,即使它安装了它也很可能不是用我也需要的 libssh 构建的。

我能想到的唯一解决方案是使用预构建版本的 libcurl 发布我的应用程序。创建某种自定义安装程序以检查用户计算机的 libcurl 并在必要时安装预构建版本。我对此是否正确?似乎可能有更好的方法。

...如果我需要自定义安装程序,任何人都可以指出一个好的教程吗

4

4 回答 4

2

现在我很确定 Mac OS X 没有安装 libcurl,...</p>

是的,它确实:

curl --version                                                            %~(0)
curl 7.19.4 (universal-apple-darwin10.0) libcurl/7.19.4 OpenSSL/0.9.8k zlib/1.2.3

…即使它做到了,它也很可能不是用 libssh 构建的,我也需要它。

正确:它没有。

Protocols: tftp ftp telnet dict ldap http file https ftps 
Features: GSS-Negotiate IPv6 Largefile NTLM SSL libz 

您可能会发现将 libcurl 构建为静态库并与之链接比构建共享库并将其复制到应用程序的 Frameworks 子目录更简单。

于 2009-12-27T07:48:38.387 回答
2

您可以使用install_name_tool更改动态链接库的搜索路径。

使用@executable_path,您可以使用相对于您的应用程序可执行文件的路径,然后将库放置在您的框架文件夹(“@executable_path/../Frameworks/libcurl.dylib”)或可执行目录中(例如“@executable_path/lib /libcurl.dylib")。

通过这种方式,您可以构建自己的动态链接库并将它们发送到您的应用程序包中。

于 2009-12-27T16:14:29.723 回答
1

是什么让您确定 OS X 不附带 libcurl?

$ locate libcurl
/Developer/SDKs/MacOSX10.5.sdk/usr/lib/libcurl.2.dylib
/Developer/SDKs/MacOSX10.5.sdk/usr/lib/libcurl.3.dylib
/Developer/SDKs/MacOSX10.5.sdk/usr/lib/libcurl.4.0.0.dylib
/Developer/SDKs/MacOSX10.5.sdk/usr/lib/libcurl.4.dylib
/Developer/SDKs/MacOSX10.5.sdk/usr/lib/libcurl.dylib
/Developer/SDKs/MacOSX10.6.sdk/usr/lib/libcurl.2.dylib
/Developer/SDKs/MacOSX10.6.sdk/usr/lib/libcurl.3.dylib
/Developer/SDKs/MacOSX10.6.sdk/usr/lib/libcurl.4.dylib
/Developer/SDKs/MacOSX10.6.sdk/usr/lib/libcurl.dylib

无论哪种方式,如果您需要自己的,只需将其放入您的捆绑包中即可。

于 2009-12-27T04:28:05.500 回答
0

也许你想在使用 libcurl 之前看看ConnectionKit 。

于 2009-12-27T16:31:52.497 回答