如何使用动态库在Xcode中为OSX 10.4,10.5和10.6构建C ++

时间:2010-02-06 13:58:08

标签: c++ xcode macos universal-binary

我正在Xcode中构建一个C ++命令行工具。该项目包含用于curl,boost和log4cpp的dylib。

理想情况下,我喜欢构建一个支持10.4到10.6的i386通用二进制文件。

我似乎无法让Xcode编译,当我以10.4为目标时它会说没有这样的文件或目录。

当我的目标是10.6 x_64时它构建正常,但10.5 i386抱怨我的dylib不是10.5的正确架构?

我应该使用哪种版本的GCC?

此外,当我使用PackageMaker创建安装包时,安装程​​序应该在哪里放置该工具所需的dylib?

非常感谢, 托比。

4 个答案:

答案 0 :(得分:2)

第三方库是为10.6 x_64构建的,我需要重建它们为10.4。

我通过下载xcode 3.2安装了10.4u sdk,并在安装过程中选择了“安装10.4支持”。

使用GCC 4.0针对10.4u sdk重建每个库后,我的项目编译成功。

我还使用了静态库,因此我不需要将它们包含在安装程序中。

答案 1 :(得分:0)

您应该只需选择10.4 SDK和gcc 4.0,并构建一个可在10.4以上运行的可执行文件。

答案 2 :(得分:0)

您的库可能仅为X86_64构建。您需要将库重新编译为通用二进制文件。

编辑:使用10.4 SDK。

答案 3 :(得分:0)

在Project菜单中,选择Set Active SDK,然后选择Mac OS X 10.4。

如果您使用该SDK获得链接错误,则可能添加了不是为10.4构建的库

确保您使用的是10.4库,例如libcurl可以在

中找到
/Developer/SDKs/MacOSX10.4u.sdk/usr/lib/gcc/libcurl.dylib

你可能正在与

联系
/usr/lib/libcurl.dylib

这将是您运行的操作系统的版本(我假设为10.6)