Clang

Aus Lowlevel
Wechseln zu:Navigation, Suche
Allgemeines
Name: Clang
Entwickler: Das Clang-Team
Akt. Version: 10.0.1
Lizenz: Apache 2.0
Plattform: alle verbreiteten und ein paar andere
Homepage
clang.llvm.org


Clang ist ein Frontend für die LLVM Compiler Infrastructure für die C-ähnlichen Sprachen C, C++, Objective-C/++, OpenCL, CUDA und RenderScript. Dabei werden auch eine Vielzahl von CPU-Architekturen und Plattformen unterstützt. Clang ist immer ein Cross-Compiler, über das --target Attribut kann die Zielplatform als triple angegeben werden (bspw x86_64-pc-lf_os oder x86_64-linux-elf), extra Cross-Compiler sind also nicht notwendig.

Um Clang ein neues Betriebssystem beizubringen, sind ein paar Änderungen an der Code-Basis notwendig, unter anderem um die Toolchain oder eingebaute defines zu definieren.

Clang selber wandelt den Code in LLVM IR Code um, dieser kann dann von anderen LLVM Tools zu Maschinencode umgewandelt werden. Normalerweise erfolgt das aber automatisch mit einem clang Aufruf, ähnlich wie auch der GCC intern diverse andere Programme ausführt.

Generell versucht Clang mit dem GCC kompatibel zu sein, verwendet die gleichen Kommandozeilenargumente und Spracherweiterungen. Die meisten höheren Build-Tools (CMake, gn, ..) definieren Clang dabei als einen GCC mit Extras.

Siehe auch

Inline-Assembler mit GCC

Weblinks