Лаборатория   информационных   технологий 


«Содержание»

  5. Некоторые средства разработки (компиляторы, редактор связей, программы архивации)

   B распоряжении пользователей на Linux-фермах ЛИТ имеются следующие средства разработки:

   Компиляторы

   RedHat:

   Программы компиляции и создания объектных, загрузочных, перемещаемых модулей с языков С и С++ из исходных файлов .c для gcc, .C — для g++ соответственно:

/usr/bin/gcc (version egcs-2.91.66)

/usr/bin/g++ (version egcs-2.91.66)

   Обращение:

gcc [ option | filename ]...

g++ [ option | filename ]...

   Значение некоторых опций:

-c — исходный файл только транслировать (создать объектный файл .o)

-o file — создать загрузочный файл file.o

-llibrary — при редактировании связей использовать библиотеку liblibrary.a

-shared — cоздать share-объект

-Wl,option — передать опции option редактору связей

-Idir — добавить каталог dir в список поиска каталогов, содержащих include-файлы

-Ldir — добавить каталог dir в список поиска библиотек

   Программа компиляции и создания объектных, загрузочных модулей с языка Fortran77 из исходных файлов .f :

/usr/bin/f77 -> /usr/bin/g77 (version egcs-2.91.66)

   Обращение:

g77 [option | filename ]...

   Значение некоторых опций:

— создать только объектный файл .o из исходного

-o file — создать загрузочный файл file.o

-llibrary — использовать библиотеку liblibrary.a при редактировании связей

-Idir — добавить каталог dir в список поиска каталогов, содержащих include-файлы

-Ldir — добавить директорию dir в список поиска библиотек

O — включить оптимизацию

   Рекомендованные CERN компиляторы:

/usr/local/gcc-alt-2.95.2/bin/gcc (version 2.95.2)

/usr/local/gcc-alt-2.95.2/bin/g++ (version 2.95.2)

/usr/local/gcc-alt-2.95.2/bin/g77 (version 2.95.2)

   Синтаксис компиляторов такой же, как и к компиляторам RedHat. В CERNе рекомендовано использовать компиляторы gcc-alt-2.95.2 и они вызываются в программном окружении PC-Linux кластера ЛИТ по умолчанию как gcc, f77, g++.

   Программы архивации

   Программа создания, модификации, извлечения данных архива, в том числе и библиотек:

/usr/bin/ar

   Обращение:

ar [-]{dmpqrtx}[abcfilNoPsSuvV] [membername] [count] archive files...

   Значение некоторых опций:

c — создать архив

a — добавить новые файлы перед существующими

d — уничтожить файл в архиве

q — добавить новые файлы в конец архива

r — вставить новый файл с замещением существующего

t – вывести таблицу содержимого архива

x — извлечь файл из архива

   Программа генерации индексов содержимого архива:

/usr/bin/ranlib

   Список индексов хранится в этом же архиве.

   Обращение:

ranlib [-v|-V] archive

   Программа получения списка символов в архиве объектных файлов:

/usr/bin/nm

   Обращение:

nm [options] [objfile...]

   Пример: Получить список, сортированный по адресам:

nm -n libgcc.a

__dummy.o:

00000000 T __dummy

00000007 t Letext

__gcc_bcmp.o:

00000000 T __gcc_bcmp

00000033 t Letext

__main.o:

00000000 t Letext

_ashldi3.o:

00000000 T __ashldi3

00000055 t Letext

_ashrdi3.o:

00000000 T __ashrdi3

00000056 t Letext

..........

   Редактор связей

   Программа создания выполняемых модулей (из объектных модулей, библиотек, перемещаемых данных); динамических библиотек (из перемещаемых данных):

/usr/bin/ld

   Обращение:

ld [options] objfile...

   Значение некоторых опций:

-Lsearchdir — добавляет путь searchdir поиска библиотек

-Olevel — уровень оптимизации выходного файла, где level есть число, соответствующее выбранному уровню оптимизации

-r — создать перемещаемый модуль

-shared — создать shared-библиотеку

   Пример: ld -o output /lib/crt0.o hello.o -lc

   В результате загрузчик создает выполнимый файл output, для создания которого подключаются библиотека libc.a и объектные модули /lib/crt0.o hello.o

   Весьма полезной является команда ldd, позволяющая посмотреть список разделяемых библиотек, используемых Вашей программой.

   Обращение:

ldd <progam_name>

Н.И. Громова (grom@cv.jinr.ru)


«Содержание»