Using Boost on XCode 5 - Apple LLVM 5.0

2019-01-30 06:54发布

问题:

I am glad the NDA for XCode 5 is over and I can ask this question.

I have a problem building Boost for XCode 5 now that there is only one compiler LLVM 5.0

I've tried with Homebrew using --c++11, using clang.... I've tried various ideas and scripts but none has worked so far.

Any help would be appreciated. Thanks

回答1:

To build 32/64 bit fat static binaries for boost 1.54.0 compiled with clang/llvm, the only compiler for Xcode 5:

  1. Download the unix tarball (not the ZIP! -- that has CR/LF line endings and will gack)
  2. Untar it.
  3. cd to boost_1_54_0/
  4. Run:

    ./bootstrap.sh toolset=clang

  5. Run:

    ./b2 toolset=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++" link=static stage

...which puts the output libs in ./stage/lib

Then move the libraries where you want them.

These are release libraries, which should be all you need.

This is for OSX. You can change -arch and add other options in the cxxflags= for iOS.

If you need the message passing interface, remove --without-mpi from the b2 command.

==== Fun Facts:

  • building boost seems a moving target, so these instructions will likeley break in a future release
  • I tried to -Wno-xxxx the warnings off in the cxxflags= ... but it didn't work
  • bjam and b2 are the same thing, b2 is the new name
  • clang as a first-class toolset was added somewhere along the way, so you can ignore any instructions on the web to modify "user-config.jam" (Everything you need seems to be able to be passed on the b2 command line for these one-off builds.)