完全なグローバル clang+llvm 環境を作成する

完全なグローバル clang+llvm 環境を作成する

完全な Clang、libc++、LLVM をデフォルトのグローバル ツールチェーンとして設定する最も簡単な方法は何ですか? 私が考えつくほとんどの構成でビルドを試みましたが、Clang は動作しましたが、libc++ ヘッダーではなく、デフォルトの GCC の libstd++ ヘッダーが使用されたため、互換性のないライブラリ コード部分に多数の障害が発生しました。

魔法をかけたり、コンパイラやリンカーに渡したりすることなく、すぐに使えるようにしたいと思っています.bashrc-stdlib=libc++-lc++

答え1

lib/Frontend/InitHeaderSearch.cppLLVM と Clang が FreeBSD のベースにどのように統合されているかを判断すると、システムのライブラリとヘッダーのパス ( ) を設定するには、Clang の内部をハックする必要があると思います。

libc++ をデフォルトとして使用するには、コードの変更が確実に必要です (「UseLibcxx」を grep で検索)。にlib/Frontend/CompilerInvocation.cpp変更するには、システム リンカーもハックする必要があるでしょう。-lstdc++-lc++

個人的には、CC、CXX、CFLAGS、CXXFLAGS などの変数を設定するだけで、手間をかけずに同じ結果を達成できることをお勧めします。私の環境では FreeBSD で問題なく動作します。

関連情報