C++. Сборник рецептов
Шрифт:
MinGW, что означает «Minimalist GNU for Windows» (минимальный GNU для Windows), предоставляет минимальную среду для сборки исполняемых файлов для Windows с помощью GCC. Среди других вещей MinGW включает порт GCC, порт архиватора и компоновщика GNU и порт отладчика GNU GDB. Он также включает MSYS — среду командной строки, способную выполнять make-файлы GNU и сценарии configure. MSYS будет обсуждаться в рецепте 1.14.
Одно из важных различий между Cygwin и MinGW относится к лицензированию. За некоторыми исключениями вы можете распространять двоичные файлы, скомпилированные с помощью порта MinGW GCC, под любой удобной вам лицензией. С другой стороны, двоичные файлы, собранные с помощью порта Cygwin GCC, по умолчанию подпадают под действие лицензии GNU General Public License (GPL). Если вы хотите распространять программы, скомпилированные в Cygwin, не делая
Рецепт 1.14.
1.2. Сборка простого приложения «Hello, World» из командной строки
Вы хотите собрать простую программу «Hello, World», подобную приведенной в примере 1.4.
Пример 1.4. Простая программа «Hello, World»
hello.cpp
Выполните следующие шаги.
1. Установите все переменные среды окружения, необходимые для вашего инструментария.
2. Введите команду, которая говорит компилятору скомпилировать и скомпоновать вашу программу.
Сценарии для установки переменных среды окружения перечислены в табл 1.5. Эти сценарии расположены в той же директории, что и инструменты командной строки (табл. 1.3), Если ваш инструментарий в табл. 1.5 не указан, пропустите первый шаг. В противном случае, если вы используете Windows, запустите соответствующий сценарий из командной строки, а если используете Unix, то укажите его в качестве источника переменных окружения.
Табл. 1.5. Сценарии для установки переменных среды окружения, необходимые для инструментов командной строки
Инструментарий | Сценарий |
---|---|
Visual C++ | vcvars32.bat |
Intel (Windows) | iclvars.bat¹ |
Intel (Linux) | iccvars.sh или iccvars.csh |
Metrowerks (Mac OS X) | iccvars.sh или mwvars.csh² |
Metrowerks (Windows) | cwenv.bat |
Comeau | Тот же, что и для используемого базового инструментария |
¹ В предыдущих версиях компилятора Intel этот сценарий назывался iccvars.bat.
² В версиях CodeWarrior до 10.0 имелся единственный сценарий csh с именем mwvars.
Команды для компиляции и компоновки hello.cpp приведены в табл. 1.6. Для корректной работы эти команды требуют, чтобы ваша текущая директория была директорией, содержащей hello.cpp, и чтобы директория, в которой находится компилятор командной строки, была указана в переменной среды
Табл. 1.6. Команды для компиляции и компоновки hello.cpp за один шаг
Инструментарий | Командная строка |
---|---|
GCC | g++ -o hello hello.cpp |
Visual C++ | cl -nologo -EHsc -GR -Zc:forScope -Zc:wchar_t -Fehello hello.cpp |
Intel (Windows) | id -nologo -EHsc -GR -Zc:forScope -Zc:wchar_t -Fehello hello.cpp |
Intel (Linux) | icpc -o hello hello.cpp |
Metrowerks | mwcc -wchar_t on -cwd include -o hello hello.cpp |
Comeau | como -o hello hello.cpp |
Borland | bcc32 -q -ehello hello.cpp |
Digital Mars | dmc -Ae -Ar -l<dmcroot>/stlport/stlport -o hello hello.cpp |
Табл. 1.7.
Оболочка | Командная строка |
---|---|
bash, sh, ksh (Unix) | export PATH=<directory>:$PATH |
csh, tsch (Unix) | setenv PATH <directory>:$PATH |
cmd.exe (Windows) | set PATH=<direcfory>;%PATH% |
Например, при использовании Microsoft Visual Studio .NET 2003 и установке ее по стандартному пути на диск С перейдите в директорию, содержащую hello.cpp, и введите показанные ниже команды.
Теперь программу можно запустить.
Аналогично при использовании Intel 9.0 для Linux и установке его по стандартному пути /opt/intel/cc/9.0 откройте оболочку bash, перейдите в директорию, содержащую hello.cpp, и введите команды:
Переменные среды окружения — это пары строк, поддерживаемые системой и доступные для работающих приложений. Инструменты командной строки часто используют переменные среды, для того чтобы узнать некоторые подробности о вашей системе и для получения настроечной информации, которую в противном случае пришлось бы вводить в командной строке. Переменная среды, с которой вы чаще всего будете сталкиваться, — это