在 libc++ 中使用 g++

aki*_*kim 4 g++ libstdc++ clang++ libc++ osx-mavericks

让 clang++ 使用 GCC 的 libstdc++ ( -stdlib=stdc++)是很容易的,但是我该如何做相反的事情呢?在 OS X Mavericks 上,c++ 系统库是 libc++,这意味着基本上不能使用 libstdc++(如果你与其他 c++ 库如已经用 libc++ 编译的 boost 混合)。所以,粗略地说,这意味着 G++ 不可用......除非我可以要求它使用 libc++ 而不是 libstdc++。

谢谢。

我使用的脚本(编辑)

我正在使用以下脚本g++-libc++在带有 MacPorts 的 Mac OS X 上在 libc++ 之上运行 g++(因此-mp名称。

#! /bin/sh

clangxx=clang++-mp-3.5
gxx=g++-mp-4.9

libcxx_includes=$($clangxx -print-search-dirs |
                  perl -ne 's{^libraries: =(.*)}{$1/../../../} && print')

exec $gxx -std=c++11 \
   -isystem ${libcxx_includes}/include/c++/v1 \
   -nostdinc++ -nodefaultlibs \
   -lc -lc++ -lc++abi -lgcc_s.10.5 \
   -Wl,-no_compact_unwind \
   "$@"
Run Code Online (Sandbox Code Playgroud)

Tho*_*mas 6

就像是:

g++ -std=c++0x -nostdinc++ -nodefaultlibs -lc -isystem <path_to>/include/c++/v1 -lc++ -lc++abi -lgcc_s.10.5