Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #72, ДЕКАБРЬ 2004 г.

Операционные инструменты *nix-кодера

Иван Скляров

Хакер, номер #072, стр. 072-104-5


$ gcc -o program.c -L. -lmylib -o program

Это работает в большинстве случаев, однако на некоторых системах получить статическую библиотеку таким способом не получится. Иногда после того как архиватор ar создаст архив, нужно в него добавить индекс символов, т.е. список вложенных в библиотеку функций и переменных, чтобы линковка проходила нормально. Делается это с помощью стандартной утилиты ranlib из пакета Binutils:

$ ranlib mylib.a

После этого библиотеку можно подключать к программе с помощью gcc, как в предыдущем примере. Для получения статической библиотеки рекомендуется всегда обрабатывать архив утилитой ranlib.

На этом стоит, думаю, остановиться, хотя я рассказал далеко не обо всех стандартных утилитах для *nix-программиста. Большинство из «забытых» мной утилит либо используются очень редко, например, такие как addr2line, c++filt, objcopy, либо требуют для рассказа отдельной статьи (as, gdb). В man ты всегда сможешь найти нужную информацию.

CD

На Xakep CD/DVD ты найдешь весь софт, который был упомянут в данном материале. А именно последние версии gcc, binutils и autotools.

DANGER

Утечки памяти ведут к постепенному сокращению ресурсов системы, до полного их исчерпания.

WWW

sources.redhat.com/automake/

freshmeat.net/projects/libtool/

www.gnu.org/software/shtool/

www.gnu.org/software/autoconf/

sources.redhat.com/autobook/autobook/autobook_toc.html

Что такое GNU Binutils?

GNU Binutils - это пакет утилит, который включает в себя многие важные системные программы, такие как as, ld, ar, gprof и пр. Без пакета Binutils невозможна работа компилятора gcc, а значит, невозможно нормальное функционирование всей системы. Сайт разработчиков пакета Binutils расположен по адресу: sources.redhat.com/binutils/.

Назад на стр. 072-104-4  Содержание