2013-07-29 2 views
5

У Clang есть binary distro, но нет никакого файла README или что-нибудь, что бы сказать вам, что находится в tarball или что с ним делать.Как установить Clang из бинарного дистрибутива?

Похоже, что мне необходимо отдельно загрузить и установить libc++. Возможно, мне придется копировать только двоичный файл clang и, возможно, несколько других, но не все llvm-*. Это объясняется отсутствием каких-либо заголовков C++ в бинарном дистрибутиве (хотя включены некоторые заголовки, специфичные для среды), а также отсутствие llvm-as и таких на моей существующей установке LLVM 3.2 из Xcode.

Я просто хочу запустить компилятор, не разрабатывать с помощью libclang или собирать файлы сборки LLVM. Есть где-нибудь страница с инструкциями?

+0

Если это для OS X, то при установке любой последней версии Xcode 4.x у вас уже должен быть установлен clang, no? –

+0

Как получить доступную версию от MacPorts? – jalf

+0

@paul Я был удивлен, но последний Xcode имеет только 3,2 (или я сильно ошибаюсь. В любом случае я его не использую.) – Potatoswatter

ответ

3

Проект LLVM на самом деле не ожидает, что многие люди будут использовать бинарный дистрибутив, который они выпускают. LLVM выпускает для периодической проверки, но ожидается, что большинство пользователей получат LLVM через свой дистрибутив ОС или построят версию, которую они хотят от источника.

См. this email thread, где разработчики clang обсуждают, как используется использование двоичных файлов.

Таким образом, вы можете использовать их распределение, если хотите. Что устанавливать, зависит от того, что вы хотите сделать:

  • Использовать clang как статический компилятор.
  • Построить инструменты на основе клана.
  • Используйте LLVM в качестве бэкэнд для своего пользовательского компилятора языка.

Я, возможно, потребуется скопировать только лязг двоичный файл и, возможно, некоторые другие, но не все llvm- * материал.

Если все, что вам нужно сделать, это скомпилировать C/C++/Obj-C, то я считаю, все, что вам нужно, это лязг двоичный (и «лязг ++» символическая ссылка), на «встроенные» заголовки, и библиотеки времени выполнения. Вы найдете эти заголовки и библиотеки в /lib/clang/<version>/. (Компилятор clang обычно находит свои встроенные части по их местоположению относительно двоичного кода.)

Если вы хотите использовать LLVM в качестве бэкэнд, вам понадобятся заголовки и библиотеки LLVM для сборки и ссылки, или вам понадобятся некоторые из двоичных файлов ll * для обработки вывода вашего интерфейса.

Если вы хотите создать инструменты, основанные на кланге, вам понадобятся заголовки и библиотеки clang для создания и связывания с устойчивым C API или нестабильным C++ API.

Обратите внимание, что библиотеки построены с RTTI и исключения отключены. Это изменяет ABI и поэтому вы не можете связать их с кодом, встроенным с RTTI или включенными исключениями.

Похоже, мне нужно отдельно загрузить и установить libC++.

Исправить, libC++ не входит в состав дистрибутива LLVM. Многие из номинальных подпроектов LLVM не включены. LLDB - еще один пример.

И LLVM не включает стандартную библиотеку C или базовые рамки Objective-C.

+0

Спасибо ... Я решил установить из источника, потому что 3.3 все равно не будет обрабатывать мою программу (не будет бросать тип только для перемещения). Ха-ха, если только они наложили 1% усилий на то, чтобы написать, что электронной почты в файл 'readme' ... – Potatoswatter

2

для Ubuntu/Debian (incuding Linux Mint) дистрибутивы на основе, есть также предварительно встроенные .deb файлы из http://llvm.org/apt/

Это имеет то преимущество, что это проще для удаления на более позднем этапе, а также обеспечивает Clang 3.4 ночные сборки (также доступна версия 3.3). Просто добавьте одну строку в ваш sources.list (или используйте диспетчер пакетов GUI для этого), и вы настроены.

Смежные вопросы