Что делает опция clang -cc1? - PullRequest
       20

Что делает опция clang -cc1?

35 голосов
/ 24 января 2012

Я новичок в clang. Я прочитал статью о преобразовании источника в источник из cuda в opencl с использованием clang внешнего интерфейса компилятора.

Может кто-нибудь сказать, почему иногда используется опция -cc1?

Ответы [ 2 ]

33 голосов
/ 25 января 2012

Внешний интерфейс компилятора Clang имеет несколько дополнительных специфических функций Clang, которые не раскрываются через интерфейс драйвера совместимости GCC. Аргумент -cc1 указывает, что должен использоваться внешний интерфейс компилятора, а не драйвер. Функциональность clang -cc1 реализует базовую функциональность компилятора.

Итак, просто говоря. Если вы не дадите -cc1, тогда вы можете ожидать «внешний вид» стандартного GCC. То есть подавляющее большинство флагов компилятора работают так же, как и вы ожидаете, что они будут работать с GCC Если вы передадите опцию «-cc1», вы получите флаг компилятора Clang. Таким образом, могут быть различия с GCC.

Надеюсь, это немного прояснит.

10 голосов
/ 25 января 2012

Обычный компилятор состоит из так называемого драйвера компилятора, который знает, как выполнять сам компилятор, ассемблер, компоновщик и т. Д., И сам компилятор, который просто берет исходный код (иногда уже предварительно обработанный) и генерирует код ассемблера / объекта.

Clang реализует все эти компоненты в одном двоичном файле, разница только в cmdline. Здесь clang -cc1 вызывает сам компилятор с его внутренним / недокументированным набором опций и т. Д.

...