Erstellen einer vollständigen globalen Clang + llvm-Umgebung

748
Griwes

Was ist der einfachste Weg, um Clang, libc ++ und LLVM als globale Standardwerkzeugkette einzurichten? Alle meine Versuche, es zu bauen, führten in den meisten Konfigurationen, die ich mir vorstellen konnte, dazu, dass Clang funktionierte, aber es wurden keine libc ++ - Header verwendet, sondern die standardmäßigen von libstd ++ von GCC.

Ich möchte, dass es aus der Box heraus funktioniert, ohne zaubern zu müssen .bashrcoder all das zu übergeben -stdlib=libc++und -lc++Compiler und Linker zu verwenden.

3

1 Antwort auf die Frage

3
arrowd

Judging on how LLVM and Clang have been integrated into FreeBSD's base, i think you will need to hack Clang's internals to set library and headers paths (lib/Frontend/InitHeaderSearch.cpp) for your system.

Using libc++ as default definitely needs changing the code (grep lib/Frontend/CompilerInvocation.cpp for "UseLibcxx"). You will probably need to hack system linker too to change -lstdc++ to -lc++.

Personally, i'd recommend you just setting CC, CXX, CFLAGS, CXXFLAGS and other vars to achieve same result without much hassle. It works for me flawlessly on FreeBSD.