...

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

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