11

由于只有一个编译器 LLVM 5.0,我在为 Xcode 5 构建 Boost 时遇到了问题。

我已经尝试使用 --c++11 使用 Homebrew,使用 clang...。我尝试了各种想法和脚本,但到目前为止都没有奏效。

4

1 回答 1

23

要为使用 clang/llvm(Xcode 5 的唯一编译器)编译的 boost 1.54.0 构建 32/64 位胖静态二进制文件:

  1. 下载 unix tarball(不是 ZIP!- 有 CR/LF 行结尾并且会 gack)
  2. 解压它。
  3. cd 到 boost_1_54_0/
  4. 跑:

    ./bootstrap.sh 工具集=clang

  5. 跑:

    ./b2 工具集=clang --without-mpi cxxflags="-arch i386 -arch x86_64 -fvisibility=hidden -fvisibility-inlines-hidden -std=c++11 -stdlib=libc++ -ftemplate-depth=512" linkflags= “-stdlib=libc++”链接=静态阶段

...将输出库放入 ./stage/lib

然后将库移动到您想要的位置。

这些是发布库,应该是您所需要的。

这是针对 OSX 的。您可以更改 -arch 并在 cxxflags= for iOS 中添加其他选项。

如果您需要消息传递接口,请从 b2 命令中删除 --without-mpi。

==== 有趣的事实:

  • 构建提升似乎是一个移动的目标,因此这些说明可能会在未来的版本中中断
  • 我试图 -Wno-xxxx 在 cxxflags= 中关闭警告...但它没有用
  • bjam 和 b2 是同一个东西,b2 是新名字
  • clang 作为一流的工具集被添加到某个地方,因此您可以忽略网络上的任何指令来修改“user-config.jam”(您需要的一切似乎都可以在 b2 命令行上传递这些一次性构建。)
于 2013-09-27T16:05:48.323 回答