我的应用程序需要libcurl的第7版,并在Lion上正常工作,但Snow Leopard上的libcurl.dylib版本无效(我需要*前缀* MKD命令)。 (1)应用程序文件夹,(2)内容文件夹,(3)MacOS文件夹和(4)应用程序文件夹中的副本, )资源文件夹,但没有成功。甚至四个副本,每个文件夹一个。 (仍然到/ usr/lib。)强制OS X应用程序使用特定的libcurl.dylib
我也尝试在Xcode 4.2中将“Runpath Search Paths”设置为“。”,但这并没有帮助。
因此,问题1是,我如何强制我的雪豹应用程序使用包含在包中的dylib? (安装一个新的libcurl.dylib是不可能的 - 这个应用程序将进入Mac App Store。)
在实验上,我将Snow Leopard系统上的/usr/lib/libcurl.dylib替换为狮子,并与该应用程序的工作。所以我知道,如果我可以让应用程序使用这个库,它会工作正常。
我也试过建立一个静态的libcurl.a,它工作(使用configure,make和make install),但试图链接到应用程序仍然引用dylib。然后,我将静态库的名称更改为libcurl-static.a,但之后出现链接器错误,因为其他dylib中未定义数十个符号。我试图在我的构建中包含更多的dylib,以解决这些问题,但libcurl所需的dylib列表显然很长。我试图用otool找出需要的东西,但没有一个选项让我看到有用的东西。
问题#2是:如何将我的应用程序静态链接到libcurl?我有一个解决方法,不能使用* MKD,如果该目录已经存在,它忽略错误,但它涉及太多额外的FTP操作,效率低下。我的方法* MKD工作正常,是快速。)
不需要建议我去另一个FTP库,因为我已经想到了。真的不想,因为libcurl在Lion上工作得很好。如果只有我可以让它使用我在雪豹上运送的图书馆。
非常感谢#1。对于#2,我的问题不是关于如何获取libcurl.a,而是关于如何让所有引用的库得到解决。 我决定libcurl方法不是我想要去的。将代码切换到CFFTP,现在它在10.6和10.7上运行得非常好。 – 2012-02-20 19:14:16
通过列出它们来解决依赖关系 - 没有隐式依赖关系解析,只有显式的。这通常没有问题,因为通常在配置时或通过自我报告(例如'pkgconfig')完成。 – 2012-02-21 01:55:05