让clang ++使用GCC的libstdC++(-stdlib=stdc++
)很容易,但我该怎么做相反的?在OS X Mavericks上,C++系统库是libC++,这意味着基本上libstdC++不能使用(如果您与其他C++库混合使用,例如使用libC++编译的boost)。所以,粗略地说,这意味着G ++不可用...除非我可以要求它使用libC++而不是libstdC++。使用g ++与libC++
谢谢。
我使用的脚本(EDIT)
我用下面的脚本,g++-libc++
,运行G ++上的libC++顶部,在Mac OS X与MacPorts的(因此-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 \
"[email protected]"
只是传递正确-I(或-isystem),-L和-l标志...... –