Erstellen einer vollständigen, globalen clang+llvm-Umgebung

Erstellen einer vollständigen, globalen clang+llvm-Umgebung

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 .bashrcoder 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.cppfü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.

verwandte Informationen