2

通常,对于我的 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),它无法编译并出现类似“错误:bits/c++config.h: No such file or directory ” 我认为这是因为我“安装” SDK 的方式,尽管其他人在这方面取得了成功。

有没有人有办法解决吗?

4

2 回答 2

0

我可以使用此过程重新安装较旧的 SDK 和编译器:我们如何恢复 ppc/ppc64 以及对 Xcode 4 的完整 10.4/10.5 SDK 支持?

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

此外,您可能无法在以 10.6 为目标时使用 -std=c++11 ,因为您通常还需要 -stdlib=libc++ ,它仅在以 10.7 或更高版本为目标时可用。

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

于 2012-11-14T16:33:36.443 回答
0

在 VMWare 或 VirtualBox 等 VM 中运行 10.6。

于 2012-11-14T07:06:16.397 回答