繁体   English   中英

有可能通过clang和gcc支持构建boost吗?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM