Jump to content

# Clang (Русский)

From ArchWiki
Состояние перевода: На этой странице представлен перевод статьи Clang. Дата последней синхронизации: 12 февраля 2022. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Clang — это компилятор C/C++/Objective c/CUDA на основе LLVM. Доступен по лицензии "Apache 2.0 License with LLVM exceptions".

## Установка

Установите пакет clang.

## Сборка пакетов с использованием Clang

Добавьте `export CC=clang` и (для C++) `export CXX=clang++` в файл `/etc/makepkg.conf`. Для поддержки LTO также установите пакет lld и добавьте `-fuse-ld=lld` в `LDFLAGS` в файле `/etc/makepkg.conf`. Если вы выполняете сборку с `debug`, удалите `-fvar-tracking-assignments` из `DEBUG_CFLAGS` и `DEBUG_CXXFLAGS`, так как Clang их не поддерживает.

Пакеты, которые используют специфичные для GCC опции компиляции, могут не собраться и потребовать ручного изменения исходников, файла PKGBUILD или отключения строк Clang в `makepkg.conf`.

## Использование статического анализатора

Чтобы проанализировать проект, добавьте `scan-build` перед командой сборки. Например:

    $ scan-build make

Если проект уже собран, `scan-build` не станет его пересобирать и не проанализирует. Чтобы принудительно запустить повторую сборку и анализ, используйте опцию `-B`:

    $ scan-build make -B

Также можно проанализировать отдельные файлы:

    $ scan-build gcc -c t1.c t2.c

## Советы и рекомендации

### Автодополнение в bash

Установите bash-completion и выполните `source /usr/share/clang/bash-autocomplete.sh` в файле настроек Bash.

## Смотрите также

- Clang — Википедия
- scan-build: running the analyzer from the command line
- Compiling CUDA with clang

Categories:

- Development (Русский)
- Package development (Русский)

Clang (Русский)
Add topic