GradC++ ToolBox: Руководство администратора
DocumentId:GradSoft-PR-r-09.04.2000-v1.2.0
Пакет GradC++ToolBox - это набор из нескольких кроссплатформенных компонент на C++,
каждая из которых предназначена для решения простой, но часто возникающей задачи:
- -
- реализации шаблонов умных указателей;
- -
- организации многопоточности;
- -
- обработки командной стороки;
- -
- записи информационных и отладочных сообщений;
- -
- чтения директории;
- -
- создания потоков управления и т.п.
Мы можем предложить пакет тем разработчикам ПО на С++,
которые, c одной стороны, хотели бы освободить себя от части рутинной работы,
с другой - хотят писать переносимый код для UNIX и для Windows NT.
Данное руководство описывает порядок получения, инсталляции и использования пакета GradC++ToolBox версии 1.6.0
Пакет GradC++ToolBox 1.6.0 включает следующие компоненты:
- ptrs - набор шаблонов умных указателей;
- Threading - набор классов для организации мультипотоковых программ;
- ProgOptions - класс для обработки опций командной строки;
- Logger - класс для записи информационных и отладочных сообщений;
- DirectoryContainer - набор классов для чтения списков файлов,
поддерживаемых операционной системой компьютера;
- DynamicModules -компонета для динамической загрузки разделяемых библиотек.
- ServiceOptions - специализация ProgOptions для CORBA сервисов;
Вы можете установить у себя все перечисленные компоненты,
либо, как вариант, все не связанные с CORBA компоненты пакета
(т.е. ptrs, Threading, ProgOptions, Logger, DirectoryContainer и DynamicModules)
в одном процессе инсталляции, "одним движением руки" - и так рекомендуется.
Кроме того, взявшись учитывать связи между отдельными компонентами пакета,
разные компоненты можно устанавливать отдельно.
Последняя версия пакета GradC++ToolBox всегда доступна на сайте разработчика по адресу http://www.gradsoft.com.ua
При условии соблюдения лицензии (файл LICENSE.rus из комплекта поставки) пакет GradC++ToolBox распространяется бесплатно.
Пакет GradC++ToolBox разработан компанией GradSoft, домашняя страничка GradSoft http://www.gradsoft.com.ua
Пакет GradC++ToolBox распространяется в исходных кодах, его установка включает следующие действия:
- компиляцию исходного кода в окружении пользователя;
- копирование заголовочных файлов и созданных при компиляции библиотек
в указанные пользователем каталоги.
В процессе работы Вы можете:
- откомпилировать пакет;
- переписать ("инсталлировать") файлы;
- удалить объекты, созданные в процессе компиляции;
- удалить переписанные файлы
при помощи команды make с нужными опциями (см. ниже).
- Компилятор C++ :
- Unix: gcc-2.95.2 или выше, SunPro 6.2
- Windows NT: Microsoft Visual C версии 6.0 или выше.
- make:
- Unix: необходим gnu make
- WindowsNT: nmake из поставки MSVC++
- CORBA ORB (не требуется, если вы не используете ServiceOptions):
- Unix: omniORB-3.0 или выше, TAO-1.2, ORBacus 4.0.1 или выше, MICO-2.3.9 или выше.
- WindowsNT: omniORB-3.0.4, ORBacus 4.0.1 или выше, TAO-1.2 или выше, MICO-2.3.9 или выше.
- Убедиться, что необходимое ПО установленно и работатет.
- Развернуть архив Gen-1.6.3.tar.gz либо Gen-1.6.3.zip в избранном Вами каталоге
(в дальнейшем этот каталог мы будем называть "корневым каталогом проекта",
и обозначать
<project_root>).
- Перейти в этот каталог.
- Запустить configure командой
./configure с нужными опциями
(список опций выводтися при запуске ./configure с опцией --help;
в частности, можно задать опцию --prefix=<smth> для назначения каталога инсталляции
либо опцию --with-corba=<yes/no> для того, чтобы указать объем компиляции/инсталляции)
- Запустить компиляцию, с помощью команды
gmake
- Перейти в root режим с помощью команды
su
- Запустить инсталляцию с помощью команды
gmake install
- Для деинсталяции пакета можно воспользоваться командой gmake uninstall
- Убедиться, что необходимое ПО установленно и работатет.
В настоящее время для работы с MSVC требуется, чтобы:
- переменные среды пользователя INCLUDE и LIB были определены
и содержали пути к включаемым файлам и библиотекам MSVC соответственно.
- пути к утилитам nmake, cl, link
были прописаны в переменной среды пользователя
PATH.
- Развернуть архив Gen-1.6.3.tar.gz либо Gen-1.6.3.zip
в избранном Вами каталоге (пусть его имя будет
<project_root>),
отредактировать файл environment.nt.mak в подкаталоге
<project_root>\config\Win32,
а также одноименный файл environment.nt.mak
в подкаталоге <project_root>\CORBA\config\Win32
в том случае, если Вы собираетесь использовать ServiceOptions.
При редактировании установить значения следующих nmake-переменных:
<project_root>\config\Win32\environment.nt.mak:
- INSTALL_DIR (каталог инсталляции) - поставляемые нами
библиотеки будут размещены в подкаталоге lib,
заголовочные файлы - в подкаталоге include
\GradSoft данного каталога.
<project_root>\CORBA\config\Win32\environment.nt.mak:
- ORB (условное имя ORB) - эта переменная должна принимать значения ORBacus,
либо OmniORB, либо TAO, либо MICO в зависимости от марки Вашего ORB
- ACE_ROOT - корневой каталог ACE (в том случае, если Вы используете TAO)
- TAO_ROOT - корневой каталог TAO (в том случае, если Вы используете TAO,
и TAO находится вне дерева каталогов ACE)
- OMNI_ROOT - корневой каталог omniORB (в том случае, если Вы используете omniORB)
- OOC_ROOT - корневой каталог ORBacus (в том случае, если Вы используете ORBacus)
- MICO_ROOT - корневой каталог MICO (в том случае, если Вы используете MICO)
- PTHREADS_ROOT - корневой каталог pthreads-win32 (в том случае, если Вы используете MICO)
Для компиляции пакета перейти в каталог <project_root>
и воспользоваться командой make ( make build ),
если Вы НЕ собираетесь использовать ServiceOptions,
либо командой make with-corba (make with-corba build,
make build with-corba - все равно), если собираетесь.
Для инсталляции пакета перейти в каталог <project_root>
и воспользоваться командой make install,
если Вы НЕ собираетесь использовать ServiceOptions,
либо make install with-corba, если собираетесь.
Для удаления инсталлированных файлов перейти в каталог <project_root>
и воспользоваться командой make uninstall
либо make with-corba uninstall
соответственно тому, используете ли Вы ServiceOptions.
Для для удаления файов, созданных в процессе компиляции
перейти в каталог <project_root> и воспользоваться командой make clean
либо make with-corba clean соответственно.
Для компиляции, инсталляции, удаления инсталлированных файлов
и файлов, созданных в процессе компиляции в пределах одной отдельно взятой компоненты -
перейти в соответствующий ей каталог (один из:
<project_root>\Threading
<project_root>\CORBA\ServiceOptions
<project_root>\ProgOptions
<project_root>\Logger
<project_root>\DirectoryContainer
<project_root>\DynamicModules )
и воспользоваться командой make
с опциями build, install, uninstall и clean соответственно.
Если вы скажете make install без предварительной компиляции пакета (компонеты),
компиляция будет запущена автоматически в объеме, достаточном для инсталляции пакета (компоненты),
однако тестовые примеры компилироваться не будут.
Тестовые примеры, входящие в комплект поставки пакета GradC++ToolBox,
соответствует примерам использования пакетов Threading, ProgOptions,
ServiceOptions, Logger, DirectoryContainer и DynamicModules,
приведенным в руководствах программиста для каждого пакета.
Для того, чтобы было, что запускать, надо сначала откомпилировать пакет.
- Прочитать руководство программиста в файле
<project_root>/CORBA/ServiceOptions/docs/ProgrammingGuide_rus.pdf
- Перейти в каталог
<project_root>/CORBA/ServiceOptions/demo
- Под UNIX: откомпилировать примеры, для чего:
- запустить ./configure с нужными опциями;
- воспользоваться командой gmake.
- Запустить программу HelloWorldServer c опцией
--help
- Прочитать help.
- Запустить программу HelloWorldServer c опцией
--ior-stdout
- Убедиться, что Interoperable Object Reference выведена на стандартный вывод.
- Запустить программу HelloWorldServer c опциями
--ior-file-HelloService hello.ref.
- Убедиться, что Interoperable Object Reference находится в файле hello.ref.
- Запустить программу HelloWorldServer c опциями:
-OAport 1100, если вы используете ORBacus
-ORBport 1100, если вы используете TAO-1.1
-ORBEndpoint iiop://:1100, если вы используете TAO-1.2
-ORBpoa_iiop_port 1100, если вы используете omniORB
-ORBIIOPAddr inet:<hostname>:1100, если вы используете Mico
(порт 1100 при этом не должен быть занят другим приложением;
естественно, вы можете указать любой другой номер порта).
- Запустить программу HelloWorldClient c опциями
- [(a)]
-ORBInitRef HelloService=corbaloc::127.0.0.1:1100/HelloService
в том случае, если вы используете TAO-1.2, omniORB или ORBacus 4.X или Mico
- [(b)]
-ORBInitRef HelloService=iiop//:127.0.0.1:1100/HelloService
в том случае, если вы используете TAO-1.1.
- Убедиться, что строка "Hello World" выведена на стандартный вывод
- Проверить правильность настройки NameService
- Запустить программу HelloWorldServer c опцией
--with-naming
- Запустить программу HelloWorldClient c опцией
--with-naming
- Убедиться, что строка "Hello World" выведена на стандартный вывод
- Прочитать руководство программиста в файле
<project_root>/Logger/docs/ProgrammingGuide_rus.pdf
- Перейти в каталог
<project_root>/Logger/demo
- Запустить исполняемый файл
- Убедиться, что файл file.log сгенерирован и его содержание отвечает описанному
в ProgrammingGuide_rus.pdf порядку использования пакета
- Прочитать руководство программиста в файле
<project_root>/DirectoryContainer/docs/ProgrammingGuide_rus.pdf
- Перейти в каталог
<project_root>/DirectoryContainer/demo
- Запустить исполняемый файл c опцией . (точка)
- Убедиться, что список файлов в текущей директории дважды ввыведен на экран
Поочередно перейти в каталоги
project_root/Threading/demo/Container
project_root/Threading/demo/DeleteThis
project_root/Threading/demo/Hairdresser
project_root/Threading/demo/Philosophs
project_root/Threading/demo/Stres
project_root/Threading/demo/ThreadServices
убедиться, что исполняемые файлы созданы и работают.
Windows NT: переменная препроцессора WIN32 должна быть определена перед включением
любого из заголовочных файлов пакета GradC++ToolBox
Программы, которые будут использовать возможности отдельных компонент GradC++ToolBox,
должны компилироваться со следующими библиотеками:
Для Unix:
| компонента |
статические библиотеки |
| |
динамические библиотеки |
| ProgOptions |
libProgOptions.a |
| |
libProgOptions.so |
| ServiceOptions |
libServiceOptions.a, libProgOptions.a |
| |
libServiceOptions.so, libProgOptions.so |
| Threading |
libThreading.a |
| |
libThreading.so |
| Logger |
libLogger.a, libThreading.a |
| |
libLogger.so, libThreading.so |
| DirectoryContainer |
libDirectoryContainer.a, libThreading.a |
| |
libDirectoryContainer.so, libThreading.so |
| DynamicModules |
libDynamicModules.a |
| |
libDynamicModules.so |
Для Windows NT:
| компонента |
статические библиотеки |
| ProgOptions |
ProgOptions.lib |
| ServiceOptions |
ServiceOptions.lib, ProgOptions.lib |
| Threading |
Threading.lib |
| Logger |
Logger.lib, Threading.lib |
| DirectoryContainer |
DirectoryContainer.lib |
| DynamicModules |
DynamicModules.lib |
Если вы компилируете компоненты GradC++TooolBox по отдельности,
Вы должны учитывать следующие связи между ними:
- Пакет ServiceOptions использует средства ProgOptions,
и в полном объеме (с примерами) может быть
скомпилирован при наличии библиотеки ProgOptions.lib для Windows NT
либо libProgOptions.a (libProgOptions.so) для UNIX.
Откомпилируйте ProgOptions перед ServiceOptions.
- Пакеты Logger и DirectoryContainer используют средства Threading,
и в полном объеме (с примерами) могут быть
скомпилированы при наличии библиотеки Threading.lib для Windows NT
либо libThreading.a (libThreading.so) для UNIX.
Откомпилируйте Threading перед Logger и DirectoryContainer.
- Threading использует пакет
ptrs, (который полностью размещается
в header-файлах и, таким образом, не определяет бибилиотеку).
Т. е. получающаяся диаграмма зависимостей:
ptrs ProgOptions
| |
*-- Threading *--ServiceOptions
|
|
*--Logger
|
*--DirectoryContainer
- 11.03.2003
- Добавлено описание тестирования с Mico ORB.
- изменен номер версии (1.6.0 -> 1.6.3)
- 28.08.2002
- изменен номер версии (1.5.0 -> 1.6.0)
- изменен номер версии поддерживаемого компилятора Sun CC.
- 28.03.2002
- изменен номер версии (1.4.2 -> 1.5.0)
- добавлено описание компоненты ptrs
- добавлена диаграмма зависимостей.
- 06.02.2002
- - изменен номер версии (1.4.1 -> 1.4.2)
- 24.01.2002
- - изменен номер версии (1.4.0 -> 1.4.1)
- 28.12.2001
- - изменения, отражающие:
- изменения в порядке компиляции пакета под Windows NT;
- добавление возможности использовать omniORB и TAO под Windows NT;
- добавление новой компоненты пакета DynamicModules.
- 17.09.2001
- - оптимизация ;)
- 16.09.2001
- - добавлено описание компоненты DirectoryContainer
- 04.07.2001
- - изменен номер порта для запуска тестового примера из пакета ServiceOptions (1100 вместо 1025).
- 29.04.2001
- - исправлено несколько опечаток
- 14.02.2001
- - добавлена информация о параметрах ORB в разделе "тестирование ServiceOptions"
- 09.04.2000
- - создан
GradSoft