Clang vs. LLVMC - какая разница? - PullRequest
       2

Clang vs. LLVMC - какая разница?

3 голосов
/ 17 декабря 2011

В чем разница между llvmc.exe и clang.exe? Какой из них я использую для компиляции кода C или C ++?

Ответы [ 3 ]

12 голосов
/ 17 декабря 2011

llvmc является интерфейсом для различных программ в наборе инструментов LLVM, в частности для llvm-*, т.е. по умолчанию он будет пытаться использовать llvm-gcc и llvm-g++ для компиляции файлов C и C ++.

Вы можете передать -clang на llvmc, если это то, что вы хотите использовать, и, вероятно, возможно настроить llvmc, поэтому clang будет использоваться по умолчанию, но я понятия не имею, как это сделать.

Я бы порекомендовал просто использовать clang и clang++ напрямую, что можно использовать в качестве замены для gcc и g++.

7 голосов
/ 19 декабря 2011

llvmc был экспериментальным драйвером, предназначенным для поддержки нескольких разных исходных языков.Clang и Clang ++ всегда были предпочтительным способом управления компилятором (C / C ++ / Objective-C).Фактически, llvmc был удален из магистрали.

Короче говоря, вы обязательно должны использовать "clang" и никогда не "llvmc".

3 голосов
/ 17 декабря 2011

LLVM изначально обозначал низкоуровневую виртуальную машину, и сегодня в основном используется либо:

  • в качестве внутреннего оптимизатора / компилятора
  • в качестве JIT-компилятора

С другой стороны, Clang - это набор библиотек для работы с семейством языков C, который содержит компилятор (clang), который выступает в качестве внешнего интерфейса для C, C ++, Objective-C и Objective-C ++ поверх библиотек LLVM.

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

...