在Xcode 5上使用Boost-Apple LLVM 5.0

在Xcode 5上使用Boost-Apple LLVM 5.0,boost,clang,xcode5,llvm5,Boost,Clang,Xcode5,Llvm5,现在只有一个编译器LLVM 5.0,我在构建Xcode 5的Boost时遇到了一个问题 我试过使用--c++11,使用clang….使用自制软件。。。。我尝试过各种想法和脚本,但迄今为止都没有成功。要为boost 1.54.0构建32/64位fat静态二进制文件,请使用clang/llvm编译,它是Xcode 5的唯一编译器: 下载unix tarball(不是ZIP!——它有CR/LF行结尾,并且会发出嘎嘎声) 解开它 cd将提高1_54_0/ 运行: ./bootstrap.sh工具集=铿锵

现在只有一个编译器LLVM 5.0,我在构建Xcode 5的Boost时遇到了一个问题


我试过使用--c++11,使用clang….使用自制软件。。。。我尝试过各种想法和脚本,但迄今为止都没有成功。

要为boost 1.54.0构建32/64位fat静态二进制文件,请使用clang/llvm编译,它是Xcode 5的唯一编译器:

  • 下载unix tarball(不是ZIP!——它有CR/LF行结尾,并且会发出嘎嘎声)
  • 解开它
  • cd将提高1_54_0/
  • 运行:

    ./bootstrap.sh工具集=铿锵

  • 运行:

    ./b2 toolset=clang——不带mpi cxxflags=“-arch i386-arch x86_64-fvisibility=hidden-fvisibility inlines hidden-std=c++11-stdlib=libc++-ftemplate depth=512”linkflags=“-stdlib=libc++”link=static stage

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

    然后将库移动到所需的位置

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

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

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

    ==== 有趣的事实:

    • 构建boost似乎是一个移动的目标,所以这些指令很可能在未来的版本中被打破
    • 我试图在cxxflags=。。。但它不起作用
    • bjam和b2是一样的,b2是新名称
    • clang作为一个一流的工具集被添加到了某个地方,因此您可以忽略web上修改“user config.jam”的任何说明 (对于这些一次性构建,您需要的一切似乎都可以在b2命令行上传递。)

    您在这个SO问题中看到过
    boost.sh
    吗?不,我没见过这个。。。即使我搜索了3天。会尝试一下吗?我使用了超级秘密的魔法单词序列“为ios构建增强”;-)该链接很有用,但不适用于XCode 5。它使用darwin,最新的XCode只适用于Clang。感谢您刚刚下载了boost.sh,它构建了iOS版本的库,没有任何问题(OSX 10.8上的Xcode 5 DP 6)。它未能为iphone模拟器构建,但这是我链接到的问题中的问题。谢谢分享。实际上,我们就是这样做的,将所有标志放在cxx标志中,它工作得非常完美。太糟糕了,当时brew不工作,我不确定他们是否有clang 5.0的更新。另外,你的注释是对的,这适用于Boost1.54,我在1.49上遇到了一些问题。回答正确的问题,谢谢!它说“x86:yes”、“32位:no”、“64位:no”。它实际上是使用64位支持编译的?我完全按照你的方式输入。那么arm7和arm7呢?你能帮我在这里输入我必须执行的整个命令,使lib在设备上运行吗?@pawel.kalisz你能找到在android设备上运行的命令吗?实际上,对我来说,它只是在项目设置中从libc++切换到libstd+,所有问题都消失了。