`
Читать книги » Книги » Компьютеры и Интернет » Программирование » Д. Стефенс - C++. Сборник рецептов

Д. Стефенс - C++. Сборник рецептов

1 ... 5 6 7 8 9 ... 136 ВПЕРЕД
Перейти на страницу:

Рецепт 1.14.

1.2. Сборка простого приложения «Hello, World» из командной строки

Проблема

Вы хотите собрать простую программу «Hello, World», подобную приведенной в примере 1.4.

Пример 1.4. Простая программа «Hello, World»

hello.cpp

#include <iostream>

int main() {

 std.:cout << "Hello, World!n";

}

Решение

Выполните следующие шаги.

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, и чтобы директория, в которой находится компилятор командной строки, была указана в переменной среды PATH. Если на шаге 1 вы запустили сценарий, то последнее требование будет удовлетворено автоматически. Также возможно, что директорию, содержащую инструменты командной строки, в переменную PATH добавил инсталлятор при установке инструментария. В противном случае вы можете либо добавить эту директорию в переменную PATH, как показано в табл. 1.7, либо указать в командной строке полный путь к файлу.

Табл. 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, и введите показанные ниже команды.

> "C:Program FilesMicrosoft Visual Studio .NET 2003Vc7binvcvars32.bat"

Setting environment for using Microsoft Visual Studio .NET 2003 tools.

(If you have another version of Visual Studio or Visual C++ installed

and wish to use its tools from the command line, run vcvars32.bat for

that version.)

> cl -nologo -EHsn -GR -Zc:forScope -Zc:wchar_t -Fehello hello.cpp hello

hello.cpp

hello

Теперь программу можно запустить.

> hello

Hello World!

Аналогично при использовании Intel 9.0 для Linux и установке его по стандартному пути /opt/intel/cc/9.0 откройте оболочку bash, перейдите в директорию, содержащую hello.cpp, и введите команды:

$ . /opt/intel/cc/9.0/bin/iccvars.sh

$ icpc -о hello hello.cpp

$ ./hello

Hello, World!

Обсуждение

Переменные среды окружения — это пары строк, поддерживаемые системой и доступные для работающих приложений. Инструменты командной строки часто используют переменные среды, для того чтобы узнать некоторые подробности о вашей системе и для получения настроечной информации, которую в противном случае пришлось бы вводить в командной строке. Переменная среды, с которой вы чаще всего будете сталкиваться, — это PATH, которая хранит перечень директорий, в которых операционная система ищет имя исполняемого файла, введенного в командной строке в виде простого имени без указания полного пути к нему. В Windows в директориях из переменной PATH также ищутся динамические библиотеки при их загрузке.

Инструменты командной строки используют переменные среды как в Unix, так и в Windows, но в Unix обычно есть системный компилятор С++, и переменные среды для его работы обычно по умолчанию устанавливаются в правильные значения. Однако в Windows традиционно имелось несколько конкурирующих компиляторов С++. Например, два различных компилятора будут, скорее всего, искать стандартные заголовочные файлы и библиотеки в различных местах. Следовательно, для Windows инструментарий часто предоставляет сценарии, которые устанавливают несколько переменных среды, в которых записано расположение заголовочных файлов и библиотек, а также другая информация.

Один из способов использовать такой сценарий — запускать его из командной строки перед вызовом какого-либо инструмента командной строки, как я продемонстрировал для Visual C++ и для Intel 9.0 для Linux. Также можно сделать установки переменных среды постоянными, с тем чтобы не приходилось каждый раз при запуске сессии командной строки запускать этот сценарий. Как это сделать, зависит от вашей операционной системы и вашей оболочки. Однако изменение постоянных значений переменных среды является плохой идеей, так как некоторые наборы инструментов могут содержать инструменты с одинаковыми именами, что приведет к вызову в процессе сборки неправильного инструмента. Например, если у вас установлено несколько версий Visual С++, вы должны быть уверены, что перед использованием инструментов командной строки вы запустили правильную версию vcvars32.bat. Другим примером является то, что Visual C++ и Digital Mars содержат инструменты с именами link.exe и lib.exe.

Теперь давайте посмотрим на командные строки в табл. 1.7. Помните, что вам требуется обратить внимание только на ту строку, которая соответствует вашему инструментарию. В общем случае информация, передаваемая компилятору, делится на четыре категории.

• Имя (имена) входного (исходного) файла (файлов).

• Имя (имена) выходного файла (файлов).

• Пути поиска файлов.

• Общая конфигурационная информация.

В табл. 1.6 указан только один входной файл hello.cpp, и он передается компилятору с помощью указания его имени в командной строке. Не имеет значения, в каком месте строки находится имя входного файла, при условии, что оно не находится в середине другой опции командной строки. В табл. 1.7 я поместил hello.cpp в самый конец командной строки.

Также в ней присутствует один выходной файл — hello.exe или hello, в зависимости от операционной системы. Однако в этом случае способ передачи имени файла компилятору зависит от инструментария. Большая часть инструментов для указания выходного файла использует -о <file>, но Visual C++ и Intel для Windows используют -Fe<file>, a Borland использует -e<file>. Заметьте, что указывать расширение исполняемого файла не обязательно.

1 ... 5 6 7 8 9 ... 136 ВПЕРЕД
Перейти на страницу:

Откройте для себя мир чтения на siteknig.com - месте, где каждая книга оживает прямо в браузере. Здесь вас уже ждёт произведение Д. Стефенс - C++. Сборник рецептов, относящееся к жанру Программирование. Никаких регистраций, никаких преград - только вы и история, доступная в полном формате. Наш литературный портал создан для тех, кто любит комфорт: хотите читать с телефона - пожалуйста; предпочитаете ноутбук - идеально! Все книги открываются моментально и представлены полностью, без сокращений и скрытых страниц. Каталог жанров поможет вам быстро найти что-то по настроению: увлекательный роман, динамичное фэнтези, глубокую классику или лёгкое чтение перед сном. Мы ежедневно расширяем библиотеку, добавляя новые произведения, чтобы вам всегда было что открыть "на потом". Сегодня на siteknig.com доступно более 200000 книг - и каждая готова стать вашей новой любимой. Просто выбирайте, открывайте и наслаждайтесь чтением там, где вам удобно.

Комментарии (0)