C++. Сборник рецептов
Шрифт:
Введя в командной строке
Если GCC не установлен или если он установлен без поддержки С++, вы должны самостоятельно установить его. Обычно это сложный процесс, который зависит от вашей платформы. Среди прочего вам потребуется установить пакеты GNU make и GNU binutils. Подробные инструкции доступны
Если вы используете Mac OS X, то простейшим способом получения GCC является скачивание с Web-сайта Apple среды разработки Xcode и следование простым инструкциям ее установки. В настоящий момент Xcode доступен по адресу developer.apple.com/tools.
Если вы используете Linux, то какая-то версия GCC уже должна быть установлена. Чтобы проверить номер версии, введите
Cygwin и MinGW представляют очень разные подходы к портированию инструментов GNU в Windows. Cygwin — это амбициозный проект, стремящийся воспроизвести Unix-подобную среду, работающую под Windows. Он предоставляет уровень совместимости с Unix, что позволяет компилировать и выполнять под Windows программы, написанные для Unix. Следовательно, для Cygwin доступно огромное количество утилит Unix. Даже если вы не разрабатываете для Unix, вы, возможно, скоро станете считать, что вам необходимы инструменты Cygwin.
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, не делая их исходники открытыми, вы должны приобрести лицензию у Red Hat. За полным описанием обратитесь к Web-сайтам Cygwin и MinGW.
Рецепт 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. Добавление директории в переменную среды окружения PATH для одной сессии работы с командной строкой
| Оболочка | Командная строка |
|---|---|
| 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, и введите показанные ниже команды.