Cl что это за программа

CL — задача

Создает программу-оболочку для компилятора Microsoft C++ cl.exe. Компилятор создает исполняемые файлы (EXE-файлы), библиотеки динамической компоновки (DLL-файлы) или модули кода (NETMODULE-файлы). Дополнительные сведения см. в разделах Параметры компилятора, Использование MSBuild из командной строки и Использование набора инструментов Microsoft C++ из командной строки.

Параметры

В следующем списке приводятся параметры задачи CL. Большинство параметров задачи и некоторые наборы параметров соответствуют параметрам командной строки.

  • AdditionalIncludeDirectories Необязательный параметр типа String[]. Добавляет каталог к списку каталогов, в которых выполняется поиск включаемых файлов. Дополнительные сведения см. в разделе /I (дополнительные каталоги включения).
  • AdditionalOptions Необязательный параметр String. Список параметров командной строки. Например, / / /. Этот параметр используется для указания параметров командной строки, не представленных каким-либо другим параметром задачи. Дополнительные сведения см. в разделе Параметры компилятора.
  • AdditionalUsingDirectories Необязательный параметр типа String[]. Указывает каталог, в котором компилятор будет производить поиск для разрешения ссылок, переданных в директиву #using. Дополнительные сведения см. в разделе /AI (указание каталогов метаданных).
  • AlwaysAppend Необязательный параметр String. Строка, которая всегда выводится в командной строке. Значение по умолчанию — «/c«.
  • AssemblerListingLocation Создает файл листинга, содержащий код сборки. Дополнительные сведения см. в описании параметра /Fa в разделе /FA, /Fa (файл листинга).
  • AssemblerOutput Необязательный параметр String. Создает файл листинга, содержащий код сборки. Укажите одно из следующих значений, каждое из которых соответствует параметру командной строки.
    • NoListing —
    • AssemblyCode — /FA
    • AssemblyAndMachineCode — /FAc
    • AssemblyAndSourceCode — /FAs
    • All — /FAcs Дополнительные сведения см. в описании параметров /FA, /FAc, /FAs и /FAcs в разделе /FA, /Fa (файл листинга).
    • Default —
    • StackFrameRuntimeCheck — /RTCs
    • UninitializedLocalUsageCheck — /RTCu
    • EnableFastChecks — /RTC1 Дополнительные сведения см. в разделе /RTC (проверки ошибок во время выполнения).
    • Cdecl — /Gd
    • FastCall — /Gr
    • StdCall — /Gz Дополнительные сведения см. в разделе /Gd, /Gr, /Gv, /Gz (соглашение о вызовах).
    • Default —
    • CompileAsC — /TC
    • CompileAsCpp — /TP
    • КомпиляцияAsCppModule — /interface
    • КомпиляцияAsCppModuleInternalPartition/internalPartition —
    • КомпиляцияAsHeaderUnit — /exportHeader Дополнительные сведения см. в разделе /Tc, /Tp, /TC, /TP (указание типа исходного файла), /interface (рассматривать входной файл как единицу интерфейса модуля),/internalPartition (рассматривать входной файл как внутреннюю единицу секции) и /exportHeader (Создание единиц заголовков).
    • false —
    • true — /clr
    • Pure — /clr:pure
    • Safe — /clr:safe
    • OldSyntax — /clr:oldSyntax Дополнительные сведения см. в разделе /clr (компиляция CLR).
    • OldStyle — /Z7
    • ProgramDatabase — /Zi
    • EditAndContinue — /ZI Дополнительные сведения см. в разделе /Z7, /Zi, /ZI (формат отладочной информации).
    • StreamingSIMDExtensions — /arch:SSE
    • StreamingSIMDExtensions2 — /arch:SSE2 Дополнительные сведения см. в разделе /arch (x86).
    • None — /errorReport:none
    • Prompt — /errorReport:prompt
    • Queue — /errorReport:queue
    • Send — /errorReport:send Дополнительные сведения см. в разделе /errorReport (отчет о внутренних ошибках компилятора).
    • false —
    • Async — /EHa
    • Sync — /EHsc
    • SyncCThrow — /EHs Дополнительные сведения см. в статье /EH (модель обработки исключений).
    • Neither —
    • Size — /Os
    • Speed — /Ot Дополнительные сведения см. в разделе /Os, /Ot (приоритет размера кода или скорости кода).
    • Precise — /fp:precise
    • Strict — /fp:strict
    • Fast — /fp:fast Дополнительные сведения см. в разделе /fp (определение поведения с плавающей запятой).
    • Default —
    • Disabled — /Ob0
    • OnlyExplicitInline — /Ob1
    • AnySuitable — /Ob2 Дополнительные сведения см. в разделе /Ob (расширение встраиваемых функций).
    • Disabled — /Od
    • MinSpace — /O1
    • MaxSpeed — /O2
    • Full — /Ox Дополнительные сведения см. в разделе /O (оптимизация кода).
    • NotUsing —
    • Create — /Yc
    • Use — /Yu Дополнительные сведения см. в разделах /Yc (создание файла предкомпилированного заголовка) и /Yu (использование файла предкомпилированного заголовка). Кроме того, см. параметры PrecompiledHeaderFile и PrecompiledHeaderOutputFile в этой таблице.
    • MultiThreaded — /MT
    • MultiThreadedDebug — /MTd
    • MultiThreadedDLL — /MD
    • MultiThreadedDebugDLL — /MDd Дополнительные сведения см. в разделе /MD, /MT, /LD (использование библиотеки времени выполнения).
    • Default — /Zp1
    • 1Byte — /Zp1
    • 2Bytes — /Zp2
    • 4Bytes — /Zp4
    • 8Bytes — /Zp8
    • 16Bytes — /Zp16 Дополнительные сведения см. в статье /Zp (выравнивание членов структур).
    • TurnOffAllWarnings — /W0
    • Level1 — /W1
    • Level2 — /W2
    • Level3 — /W3
    • Level4 — /W4
    • EnableAllWarnings — /Wall Дополнительные сведения см. в описании параметра /Wn в разделе /w, /W0, /W1, /W2, /W3, /W4, /w1, /w2, /w3, /w4, /Wall, /wd, /we, /wo, /Wv, /WX (порог предупреждений).

    См. также

    Параметры компилятора

    cl.exe — это средство, которое управляет компиляторами и компоновщиком Microsoft C++ (MSVC) C и C++. cl.exe можно запускать только в операционных системах, поддерживающих Microsoft Visual Studio для Windows.

    Это средство можно запустить только из командной строки разработчика Visual Studio. В системной командной строке или проводнике это невозможно. Дополнительные сведения см. в статье Использование набора инструментов MSVC из командной строки.

    Компиляторы создают файлы объектов COFF (OBJ). Компоновщик создает исполняемые (.exe) файлы или библиотеки динамической компоновки (DLL).

    Все параметры компилятора чувствительны к регистру. Для указания параметра компилятора можно использовать косую черту ( / ) или тире ( — ).

    Для компиляции без связывания используйте параметр /c .

    Поиск параметра компилятора

    Чтобы найти конкретный параметр компилятора, см. один из следующих списков:

    • Параметры компилятора, перечисленные в алфавитном порядке
    • Параметры компилятора, перечисленные по категориям

    Указание параметров компилятора

    В разделе для каждого параметра компилятора описывается, как его можно задать в среде разработки. Сведения об указании параметров за пределами среды разработки см. в следующих разделах:

    • Синтаксис командной строки компилятора MSVC
    • Командные файлы CL
    • Переменные среды CL

    Связанные средства сборки

    Параметры компоновщика MSVC также влияют на сборку программы.

    Командные файлы компилятора CL

    Командный файл — это текстовый файл, содержащий параметры компилятора и имена файлов. Он предоставляет параметры, которые в противном случае можно было бы ввести в командной строке или указать с помощью переменной среды CL. CL принимает командный файл компилятора в качестве аргумента либо в переменной среды CL, либо в командной строке. В отличие от командной строки или переменной среды CL, в командном файле можно использовать несколько строк параметров и имен файлов.

    Параметры и имена файлов в командном файле обрабатываются, когда имя файла команды отображается в переменной среды CL или в командной строке. Однако если /link параметр отображается в командном файле, все параметры в остальной части строки передаются компоновщику. Параметры в последующих строках командного файла и параметры командной строки после вызова командного файла по-прежнему принимаются в качестве параметров компилятора. Дополнительные сведения о том, как порядок параметров влияет на их интерпретацию, см. в разделе Order of CL Options.

    Командный файл не должен содержать команду CL. Каждый параметр должен начинаться и заканчиваться в одной строке; Обратную косую черту ( \ ) нельзя использовать для объединения параметра в двух строках.

    Командный файл указывается знаком at ( @ ), за которым следует имя файла. Имя файла может указывать абсолютный или относительный путь.

    Например, если следующая команда находится в файле с именем RESP:

    /Ot /link LIBC.LIB 

    и укажите следующую команду CL:

    CL /Ob2 @RESP MYAPP.C 

    Команда cl выглядит следующим образом:

    CL /Ob2 /Ot MYAPP.C /link LIBC.LIB 

    Здесь вы можете увидеть, как командная строка и команды командного файла эффективно объединяются.

    При подготовке материала использовались источники:
    https://learn.microsoft.com/ru-ru/visualstudio/msbuild/cl-task?view=vs-2022
    https://learn.microsoft.com/ru-ru/cpp/build/reference/compiler-options?view=msvc-170
    https://learn.microsoft.com/ru-ru/cpp/build/reference/cl-command-files?view=msvc-170

Оцените статью