Clang
![]() Clang 13.0.1 | |
Original author(s) | Chris Lattner |
---|---|
Developer(s) | LLVM Developer Group |
Initial release | September 26, 2007[1] |
Stable release | 14.0.0
/ March 23, 2022 |
Repository | github |
Written in | C++ |
Operating system | Unix-like |
Platform | AArch64, ARMv7, IA-32, x86-64, ppc64le[2] |
Type | Compiler front end |
License | Apache License 2.0 with LLVM Exceptions[3][4] |
Website | clang |
Clang /ˈklæŋ/은[5] C, C++, Objective-C, 및 Objective-C++ 프로그래밍 언어뿐만 아니라 OpenMP,[6] OpenCL, RenderScript, CUDA, 및 HIP[7] 프레임워크에 대해 컴파일러 프런트 엔드입니다. 그것은 대부분의 그것의 컴파일 플래그와 비공식 언어 확장의 대부분을 지원하는 GCC 컴파일러 모음 (GCC)에 대해 드롭-인 교체로 역할을 합니다.[8] 그것은 정적 분석기와 여러 코드 분석 도구를 포함합니다.[9]
Clang은 LLVM 컴파일러 백-엔드와 함께 작동하고 LLVM 2.6 이상의 하위프로젝트였습니다.[10] LLVM과 마찬가지로, 그것은 아파치 라이선스 2.0 소프트웨어 라이선스에 따른 자유와 오픈-소스 소프트웨어입니다.[3][4] 그것의 기여자는 Apple, Microsoft, Google, ARM, Sony, Intel, 및 AMD를 포함합니다.
2021년 10월 당시, Clang의 최신 주요 버전, Clang 13은 C++17까지 게시된 모든 C++ 표준을 완전한 지원을 가지고, C++20의 대부분의 기능을 구현하고, 향후 C++23 표준에 대해 초기 지원을 추가합니다. 버전 6.0.0이래로, Clang은 기본적으로 C++14 표준과 GNU 확장을 준수하는 특색을 포함하는 기본적으로 GNU++14 통용어를 사용하여 C++를 컴파일합니다.[11]
Installation
데비안 버전마다 제공하는 버전이 다르며, 데비안 11에서 9와 11 두 가지 버전을 제공합니다:
- sudo apt install clang-9 clang-11
데비안 11에서 보다 최신의 버전은 아래에서 구할 수 있습니다:
Using nighthly packages
개발 홈페이지에서 제공하는 패키지를 설치할 수 있습니다. 여기서 정보를 얻을 수 있습니다.
먼저 설치된 우분투 버전을 확인하십시오:
- lsb_release -a
그런-다음 아래와 같이 해당 버전에서 원하는 버전을 읽을 수 있도록 소스의 위치를 입력하십시오:
- sudo vi /etc/apt/sources.list
- deb http://apt.llvm.org/bullseye/ llvm-toolchain-bullseye-13 main
- deb-src http://apt.llvm.org/bullseye/ llvm-toolchain-bullseye-13 main
정보를 가져오기 위해 키를 더합니다:
- wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key%7Csudo apt-key add -
그런-다음 패키지 목록을 갱신하고 관련된 홈페이지 안내서에 따라 다음 패키지를 설치할 수 있습니다:
- sudo apt update
- sudo apt install clang-13 clang-tools-13 clang-13-doc libclang-common-13-dev libclang-13-dev libclang1-13 clang-format-13 python3-clang-13 clangd-13 clang-tidy-13
Version change
만약 여러 버전이 동시에 설되되었다면, 설치 후에 원하는 버전을 선택적으로 변경할 수 있도록 아래의 과정을 진행하십시오:
- sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-10 100 --slave /usr/bin/clang++ clang++ /usr/bin/clang++-10
- sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-11 110 --slave /usr/bin/clang++ clang++ /usr/bin/clang++-11
- sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-12 120 --slave /usr/bin/clang++ clang++ /usr/bin/clang++-12
- sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-13 130 --slave /usr/bin/clang++ clang++ /usr/bin/clang++-13
- sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-14 140 --slave /usr/bin/clang++ clang++ /usr/bin/clang++-14
- sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-15 150 --slave /usr/bin/clang++ clang++ /usr/bin/clang++-15
- sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-16 160 --slave /usr/bin/clang++ clang++ /usr/bin/clang++-16
- sudo update-alternatives --config clang
See also
References
- ^ "LLVM 2.1 Release Notes". llvm.org. LLVM Developer Group. 27 September 2007.
- ^ "Releases". llvm / llvm-project repo. LLVM Developer Group. 27 August 2021 – via GitHub.com.
- ^ a b "LICENSE.TXT", llvm.org, LLVM Developer Group, retrieved 2019-09-24
- ^ a b "LLVM Developer Policy", llvm.org, LLVM Developer Group, § Copyright, License, and Patents
- ^ Christopher, Eric (3 July 2008). "simply wonder pronunciation of Clang". LLVMdev (Mailing list). Retrieved 2015-09-22.
- ^ "OpenMP Support". LLVM Project Blog. May 22, 2015. Retrieved 28 March 2016.
- ^ "C++ Heterogeneous-Compute Interface for Portability". GitHub. Retrieved 18 February 2020.
- ^ "Clang Language Extensions". Retrieved 2017-11-08.
In addition to the language extensions listed here, Clang aims to support a broad range of GCC extensions.
- ^ "Clang Static Analyzer". LLVM. Retrieved 3 September 2009.
- ^ "Getting Involved with the Clang Project", clang.llvm.org, LLVM Developer Group, retrieved 2012-09-18,
Clang is a subproject of the LLVM Project, but has its own mailing lists because the communities have people with different interests.
- ^ "Clang 6.0.0 Release Notes". LLVM.
External links