
Was ist der einfachste Weg, Clang, libc++ und LLVM vollständig als globale Standard-Toolchain einzurichten? Alle meine Versuche, es zu erstellen, führten in den meisten mir eingefallenen Konfigurationen zu funktionierendem Clang, aber es verwendete keine libc++-Header, sondern die Standard-Header von libstd++ von GCC, was zu zahlreichen Fehlern in inkompatiblen Teilen des Bibliothekscodes führte.
Ich möchte, dass es sofort funktioniert, ohne dass ich zaubern .bashrc
oder all das an Compiler und Linker übergeben -stdlib=libc++
muss -lc++
.
Antwort1
Gemessen daran, wie LLVM und Clang in die FreeBSD-Basis integriert wurden, müssen Sie meiner Ansicht nach die internen Komponenten von Clang hacken, um die Bibliotheks- und Headerpfade ( lib/Frontend/InitHeaderSearch.cpp
) für Ihr System festzulegen.
Wenn Sie libc++ als Standard verwenden, muss der Code unbedingt geändert werden (grep lib/Frontend/CompilerInvocation.cpp
für „UseLibcxx“). Sie müssen wahrscheinlich auch den Systemlinker hacken, um zu -lstdc++
wechseln -lc++
.
Persönlich würde ich empfehlen, einfach CC, CXX, CFLAGS, CXXFLAGS und andere Variablen festzulegen, um ohne viel Aufwand dasselbe Ergebnis zu erzielen. Bei mir funktioniert es unter FreeBSD einwandfrei.