Операционные инструменты *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/. |