
完全な Clang、libc++、LLVM をデフォルトのグローバル ツールチェーンとして設定する最も簡単な方法は何ですか? 私が考えつくほとんどの構成でビルドを試みましたが、Clang は動作しましたが、libc++ ヘッダーではなく、デフォルトの GCC の libstd++ ヘッダーが使用されたため、互換性のないライブラリ コード部分に多数の障害が発生しました。
魔法をかけたり、コンパイラやリンカーに渡したりすることなく、すぐに使えるようにしたいと思っています.bashrc
。-stdlib=libc++
-lc++
答え1
lib/Frontend/InitHeaderSearch.cpp
LLVM と Clang が FreeBSD のベースにどのように統合されているかを判断すると、システムのライブラリとヘッダーのパス ( ) を設定するには、Clang の内部をハックする必要があると思います。
libc++ をデフォルトとして使用するには、コードの変更が確実に必要です (「UseLibcxx」を grep で検索)。にlib/Frontend/CompilerInvocation.cpp
変更するには、システム リンカーもハックする必要があるでしょう。-lstdc++
-lc++
個人的には、CC、CXX、CFLAGS、CXXFLAGS などの変数を設定するだけで、手間をかけずに同じ結果を達成できることをお勧めします。私の環境では FreeBSD で問題なく動作します。