【发布时间】:2011-08-24 15:04:55
【问题描述】:
我想将一个相当大且仍在增长的 C++ 应用程序从 PC 移植到 Mac,并继续支持两个平台上的并行开发。在 PC 上,我们使用 MSVC2010,并部署了一些 C++11 功能。在 Mac 上,我们使用的是 XCode 4.0.2。为了改进平台无关性并支持我们正在使用的内联汇编,我们在两者上都部署了英特尔编译器。但是,编译器不附带库,因此我们依赖供应商提供的库。在 Mac 上,这意味着不支持 C++11 库,因为我们非常热衷于使用 std::forward 等功能。我无法在 Mac 上使用英特尔编译器构建 libc++,否则我的问题将得到解决。除了滚动我们自己的库之外,还有其他方法吗?
【问题讨论】:
-
安装虚拟机并运行简单的 Linux 发行版,例如 Ubuntu 服务器(允许您跳过 X11、GUI 等)。这些往往有当前的 g++ 版本,接近现在 C++11 的最终草案。
-
“在 Mac 上,这意味着对 C++11 库的支持”是什么意思?我不会特别担保
std::forward,但clang(llvm 的C++ 编译器)支持许多C++11 特性,并且它随Xcode 4.x 一起提供。 -
Dirk:明确地说,这是一个商业应用程序。它需要在 OSX 上运行。如果您可以在不使用 OSX 的情况下实现这一目标,我会全力以赴。 Richard:libc++ 确实可以使用 Clang 构建并提供广泛的 C++11 支持。但是,libc++ 不能用英特尔编译器构建(除非有人能告诉我怎么做?)。我会很高兴地通过库来修复英特尔编译器错误,但我的雇主可能会对此有些不满,如果这比基本上滚动我们自己对移动构造函数和赋值运算符的支持要花更长的时间。