[英]Program using boost::filesystem links with clang but not gcc
[英]Is it possible to build boost with clang and gcc support?
我遇到了一个奇怪的问题,我需要同时使用gcc和clang特定模块访问boost库(这些程序相互作用。一个是gcc / g ++独占,一个是clang独占)。 有什么方法可以构建boost,以便在调用boost时两个模块都可以访问相同的位置,但是boost可以满足gcc或clang特定的请求?
可能,但是是否真的应该这样做值得怀疑。
您必须选择在两个编译器中同时使用libc++
或libstdc++
。
libstdc++
绝对是更好的选择,因为clang可以完美地处理它,gcc在解析多个libc++
头文件时遇到问题。
这样的事情应该使clang在Mac OS X上使用gcc的libstdc++
。
clang++ \
-stdlib=libstdc++ \
-nostdinc++ \
-Qunused-arguments \
-nodefaultlibs \
<path to>x86_64-apple-darwin14/lib/libstdc++.a \
<path to>x86_64-apple-darwin14/lib/libsupc++.a \
<path to>lib/gcc/x86_64-apple-darwin14/5.2.0/libgcc.a \
<path to>lib/gcc/x86_64-apple-darwin14/5.2.0/libgcc_eh.a \
-lc \
-Wl,-no_compact_unwind \
-cxx-isystem <path to>x86_64-apple-darwin14/include/c++/5.2.0 \
-cxx-isystem <path to>x86_64-apple-darwin14/include/c++/5.2.0/x86_64-apple-darwin14 \
-mmacosx-version-min=10.7.0
我建议将其放在包装脚本中,然后将CXX=clang++-libstdc++
传递给boost构建脚本。
包装器脚本示例:
#!/bin/sh
ls -l "$@"
包装ls。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.