Д. Стефенс - C++. Сборник рецептов
- Название:C++. Сборник рецептов
- Автор:
- Жанр:
- Издательство:КУДИЦ-ПРЕСС
- Год:2007
- Город:Москва
- ISBN:5-91136-030-6
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Д. Стефенс - C++. Сборник рецептов краткое содержание
Данная книга написана экспертами по C++ и содержит готовые рецепты решения каждодневных задач для программистов на С++. Один из авторов является создателем библиотеки Boost Iostreams и нескольких других библиотек C++ с открытым исходным кодом. В книге затрагивается множество тем, вот лишь некоторые из них: работа с датой и временем; потоковый ввод/вывод; обработка исключений; работа с классами и объектами; сборка приложений; синтаксический анализ XML-документов; программирование математических задач. Читатель сможет использовать готовые решения, а сэкономленное время и усилия направить на решение конкретных задач.
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, не делая их исходники открытыми, вы должны приобрести лицензию у Red Hat. За полным описанием обратитесь к Web-сайтам Cygwin и MinGW.
Рецепт 1.14.
1.2. Сборка простого приложения «Hello, World» из командной строки
Вы хотите собрать простую программу «Hello, World», подобную приведенной в примере 1.4.
Пример 1.4. Простая программа «Hello, World»
hello.cpp
#include
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/stlport/stlport -o hello hello.cpp |
Табл. 1.7. Добавление директории в переменную среды окружения PATH для одной сессии работы с командной строкой
Оболочка | Командная строка |
---|---|
bash , sh , ksh (Unix) | export PATH=:$PATH |
csh , tsch (Unix) | setenv PATH :$PATH |
cmd.exe (Windows) | set PATH=;%PATH% |
Например, при использовании Microsoft Visual Studio .NET 2003 и установке ее по стандартному пути на диск С перейдите в директорию, содержащую hello.cpp , и введите показанные ниже команды.
> "C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin\vcvars32.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 .
Читать дальшеИнтервал:
Закладка: