如何使用clang ++/libc ++编译/链接Boost?

x-x*_*x-x 63 c++ boost clang libc++

这个问题的答案为什么不能用c ++ 0x模式中的libc ++来扼制这个boost :: program_options例子?陈述"你需要使用clang ++ -stdlib = libc ++重建boost."

我正在使用带有clang v3.0的MacOS Lion.如何使用clang构建Boost v1.48.0并将其与libc ++链接?

更新:我已经创建了一个user-config.jam文件,其中包含以下内容:

using clang-darwin
Run Code Online (Sandbox Code Playgroud)

...将使用clang而不是gcc构建Boost.如何链接libc ++而不是libstdc ++?

How*_*ant 93

我也不知道怎么做.但是在这里探索之后,开始了,并且反复试验:

$ ./bootstrap --with-toolset=clang
$ ./b2 clean
$ ./b2 toolset=clang cxxflags="-stdlib=libc++" linkflags="-stdlib=libc++"
Run Code Online (Sandbox Code Playgroud)

你会得到很多警告.由于LWG 2059,信号库将无法构建.但除此之外,我认为它有效.


Jon*_*ing 15

另一个选择是使用Homebrew:

brew install boost --c++11
Run Code Online (Sandbox Code Playgroud)

要获取所有选项的信息,请使用:

brew info boost
Run Code Online (Sandbox Code Playgroud)

  • 这是否链接到`libc ++`而不是`libstdc ++`? (2认同)
  • brew的助推公式中的相关内容 - https://github.com/Homebrew/homebrew/blob/c77a584/Library/Formula/boost.rb#L121-L126 (2认同)