【发布时间】:2012-11-14 07:00:20
【问题描述】:
通常,对于我的 OS X 版本,我一直在运行 10.6 的旧 Mac Book Pro 上编译我的应用程序。这确保我支持这个版本的 OS X。
但是由于各种原因,MBP 不再是一个长期的选择,所以我一直在运行 10.8 的更新设备上进行编译。但是,当我这样做时,即使设置了 -mmacosx-version-min=10.6 标志,我的应用程序也无法在 10.6 上运行。当我设置标志时发生的错误是 libSystem.B.dynlib 中的 "Symbol not found: _wcsdup"
我查看了这个错误,我能找到的唯一建议是直接链接到 10.6 SDK。但是,当我尝试将 10.6 SDK 从我的 MPB 复制到新机器时(因为 10.8 上未安装 10.6 SDK),它无法编译并出现类似“错误:bits/c++config.h: No such file or directory " 我认为这是因为我“安装” SDK 的方式,尽管其他人在这方面取得了成功。
有人有解决办法吗?
【问题讨论】:
-
你是不是正好用
-std=c++11编译?如果是这样,这在 10.6 下将不起作用,因为它不包含库文件;您需要使用-std=gnu++11在 10.6 到 10.8 上工作。 -
是的,事实上我是,这很有趣,我将不得不尝试使用该标志进行编译,看看它是否成功。
-
如果您使用过任何 C++11,您可能需要对代码进行一些更改。但是,其中一些可以替换为
tr1::类,但肯定不是全部。 -
@trojanfoe 不幸的是,双重检查显示这是我的一个应用程序,我没有使用 C++11 支持编译,所以这不是我使用这个特定应用程序问题的原因。跨度>
标签: c++ macos compilation