Использование компилятора из командной строки
Введение
Компилятор командной строки находится в подкаталоге 'Compilers\' в каталоге PureBasic. Самый простой способ получить к нему доступ - добавить этот каталог в переменную PATH в windows, которая будет всегда предоставлять доступ ко всем командам этого каталога. Каждый командный ключ, который используется с символом '/', предназначен только для OS Windows.
Кросс-платформенные Ключи команд
-h, --help, /?: выводит на экран быструю справку о компиляторе.
-c, --commented, /COMMENTED: создаёт откомментированный файл вывода '.asm' при создании исполняемого файла. Этот файл можно впоследствии передать ассемблеру, после того как будут сделаны нужные изменения. Эта опция только для опытных программистов.
-d, --debugger, /DEBUGGER: включает поддержку отладчика.
-pf, --purifier, /PURIFIER: включает Пурифаер. Отладчик должен быть активирован, чтобы от этого был эффект.
-e, --executable, /EXE "filename": создает автономный исполняемый файл или библиотеку DLL, с указанным именем файла и в заданной папке. В MacOS X можно создать пакет приложений, добавив ".app" к имени исполняемого файла. Таким образом, автоматически будет создана вся структура каталогов.
-r, --resident, /RESIDENT "filename": создаёт резидентский файл, с указанным именем файла.
-i, --import, /IMPORT "filename": создает файл импорта для данного имени файла. В файле разрешен только один блок Import/EndImport. Импортируемые функции будут автоматически загружаться для каждого проекта PureBasic.
-l или - linenumbering, /LINENUMBERING: добавляет информация о строках и файлах к исполняемому файлу, что может значительно его замедлить. Это позволяет библиотеке OnError сообщать о файле и Номере строки ошибки.
-q, --quiet, /QUIET: отключает вывод ненужного текста, что очень полезно при использовании другого редактора.
-sb, --standby, /STANDBY: загружает компилятор в память и ожидает внешних команд (редактор, скрипты ...). Дополнительная информация об использовании этого флага доступна в файле 'CompilerInterface.txt' из PureBasic 'SDK'.
-ir, --ignoreresident, /IGNORERESIDENT "filename": не загружает указанный резидентный файл при запуске компилятора. Обычно это полезно при обновлении при обновлении уже существующего резидента, чтобы не загружать его.
-o, --constant, /CONSTANT name=value: создаёт указанную константу с данным выражением. Пример: 'pbcompiler test.pb /CONSTANT MyConstant=10'. Константа #MyConstant будет создан на лету со значением 10, до того как программа будет скомпилирована.
-t, --thread, /THREAD: использует потокобезопасную среду выполнения (thread safe runtime) для строк и общих процедур.
-s, --subsystem, /SUBSYSTEM "name": использует указанную подсистему, для замещения набора внутренних функций. Для получения дополнительной информации см. подсистемы.
-k, --check, /CHECK: проверяет только синтаксис, не создает и не запускает исполняемый файл.
-pp, --preprocess, /PREPROCESS "filename": позволяет предварительно обработать исходный код и записать результат в указанном "Filename". Обработанный файл представляет собой одиночный файл со всеми развёрнутыми макросами, с учётом директив компилятора и многострочным разрешением. Это позволяет упростить синтаксический анализ исходных файлов PureBasic, потому что все доступно и развернуто в формат "плоского" файла. По умолчанию комментарии не включаются, но флаг "--commented" может использоваться для того, чтобы у всех исходных кодов все тексты комментариев остались нетронутыми и разрешает обработку комментариев. Предварительно обработанный файл можно перекомпилировать как любой другой исходный файл PureBasic для создания окончательного исполняемого файла.
-g, --language, /LANGUAGE \"language\": использует указанный язык для сообщений об ошибках компилятора.
-v, --version, /VERSION: показывает версию компилятора.
Примеры:CLI> pbcompiler sourcecode.pb
Компилятор скомпилирует исходный код и выполнит его.
CLI> pbcompiler sourcecode.pb --debugger
Компилятор скомпилирует исходный код и выполнит его с отладчиком.
Ключи команд используемые в Windows
/ ICON "IconName.ico": добавляет указанный значок в исполняемый файл.
/CONSOLE: выходной файл в формате консоли. Формат по умолчанию - Win32.
/DLL: выходной файл - DLL.
/XP: добавляет поддержку тем Windows XP в исполняемый файл
/REASM: компилировать файл PureBasic.asm в исполняемый файл. Это позволяет использовать функцию /COMMENTED, модифицировать файл ASM и снова создавать исполняемый файл.
/MMX, /3DNOW, /SSE или /SSE2: создаёт исполняемый файл с учётом расширенных функций процессора. Это означает, что если доступна специальная процедура для такого процессора, она будет использоваться для этого исполняемого файла. Поэтому исполняемый файл будет корректно работать только на компьютере с таким процессором.
/DYNAMICCPU: создаёт исполняемый файл, содержащий оптимизированные для разных процессоров функции. Когда программа запускается, она определяет тип процессора и затем выбирает для использования наиболее подходящие функции. Это создаёт больший по размеру исполняемый файл, но он будет работать так быстро, как только возможно, на всех процессорах.
/RESOURCE "Filename": добавляет файл ресурса Windows (.rc) в создаваемый исполняемый файл или DLL. Это должен быть не скомпилированный файл ресурса, а файл ascii с директивами. Можно указать только один ресурс, но этот файл может включать другой ресурс, если нужно.
/LINKER "ResponseFile": указывает файл, содержащий команды, которые будут переданы непосредственно компоновщику. В Windows PureBasic использует компоновщик PellesC (polink), дополнительную информацию о возможных параметрах можно найти в соответствующей документации.
Следующие две опции компилятора требуются для создания программ, работающих в ОС Microsoft Vista или выше (Windows 7/8/10). Обе они относятся к включенному манифесту, так что они игнорируются в более старых версиях windows. Без хотя бы одного из этих ключей, исполняемый файл запустится как обычный пользовательский, но со включенной виртуализацией (т.е. с перенаправлением реестра и файлов). Рекомендуется использовать ключ /USER для отключения виртуализации для всех программ, которые соответствуют стандартных пользовательским привилегиям, так как это предназначено только для совместимости со старыми программами. Эти опции также доступны через настройки компилятора IDE.
/ADMINISTRATOR: заставит программу запрашивает права администратора. Без нее программа работать не будет. Этот параметр необходим. Примечание. Вы также можете отлаживать программы с этим флагом, но только с автономным отладчиком gui (так как он должен работать и в режиме с повышенными правами).
/USER: программа запустится как пользователь, который её запустил. Виртуализация для исполняемого файла выключена.
/DPIAWARE: Включить поддержку DPI для исполняемого файла.
Примеры:CLI> pbcompiler "C:\Project\Source\DLLSource.pb" /EXE "C:\Project\project.dll" /DLL
Компилятор скомпилирует исходный код (здесь с полным путем) и создаст DLL "project.dll" в заданном каталоге.
Ключи команд используемые в Linux
-so или --sharedobject "filename": создаёт динамическую библиотеку (shared объект).
-mmx, -3dnow, -sse или -sse2: создаёт исполняемый файл с учётом расширенных функций процессора. Это означает, что если доступна специальная процедура для такого процессора, она будет использоваться для этого исполняемого файла. Поэтому исполняемый файл будет корректно работать только на компьютере с таким процессором.
-dc или --dynamiccpu: создаёт исполняемый файл, содержащий оптимизированные для разных процессоров функции. Когда программа запускается, она определяет тип процессора и затем выбирает для использования наиболее подходящие функции. Это создаёт больший по размеру исполняемый файл, но он будет работать так быстро, как только возможно, на всех процессорах.
Ключи команд используемые в OS X
-n или --icon "filename.icns": добавляет указанный значок в исполняемый файл.
-dl или --dylib "имя файла": создаёт динамическую библиотеку (объект dylib).
-f или --front: выводит запущенный процесс на передний план.
-ibp или --ignorebundlepath: не использовать путь пакета в качестве текущего каталога.