编译OS X 10.6?

时间:2012-11-14 07:00:21

标签: c++ macos compilation

通常对于我的OS X版本,我一直在运行10.6的旧Mac Book Pro上编译我的应用程序。这确保我支持此版本的OS X.

然而由于各种原因,MBP不再是长期选项,所以我一直在编译运行10.8的更新设备。但是,当我这样做时,即使设置了-mmacosx-version-min = 10.6标志,我的应用程序也无法在10.6上运行。设置标志时发生的错误是“libSystem.B.dynlib中找不到符号:_wcsdup”

我查了一下这个错误,我能找到的唯一建议是直接链接到10.6 SDK。但是,当我尝试将10.6 SDK从我的MPB复制到新机器时(因为10.8上没有安装10.6 SDK),它无法编译错误,例如“error:bits / c ++ config.h:没有这样的文件或目录“我认为这是因为我”安装“SDK的方式,尽管其他人已经取得了成功。

有没有人有解决方案?

2 个答案:

答案 0 :(得分:0)

在VM中运行10.6,如​​VMWare或VirtualBox。

答案 1 :(得分:0)

我可以使用此过程重新安装较旧的SDK和编译器:How can we restore ppc/ppc64 as well as full 10.4/10.5 SDK support to Xcode 4?

您需要在脚本中更改xcode安装的路径。

此外,在定位10.6时,您可能无法使用-std = c ++ 11,因为您大多数情况下还需要-stdlib = libc ++,仅在定位10.7或更高版本时可用。

Apple仅从10.7开始分发libc ++二进制文件。您可以构建自己的libc ++并将其与您的应用程序一起部署到10.6台机器上。但是,当针对低于10.7的任何目标时,Apple硬编码编译器禁止-stdlib = libc ++。