我正在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?
非常感谢, 托比。
答案 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)