Где Ubuntu хранит свои библиотечные файлы?

Я хочу добавить свою собственную библиотеку для использования при компиляции c, но на самом деле не знаю, где ее хранит ubuntu.

17
задан 15 December 2010 в 17:25

5 ответов

На основе Ваших комментариев к Вашему вопросу я думаю, что Вы действительно спрашиваете, "Как я устанавливаю пользовательскую библиотеку, которую я записал и куда я должен поместить его?"

В целом вещи, созданные локально для других на машине пользователю, помещаются в/usr/local дерево. Заголовочный файл должен войти в/usr/local/include. Скомпилированная библиотека должна войти в/usr/local/lib..c файл не является частью библиотеки, это - часть источника и не чего-то обычно не установленного для использования конечного пользователя. Вы должны будете базироваться доступ для помещения файлов в любое из этих местоположений.

Для создания библиотеки необходимо будет создать, сначала решают, хотите ли Вы статическую или динамическую (общую) библиотеку. Больше информации о создании общей библиотеки может основывать раздел 3.4, Создавая Общую Библиотеку по http://www.linux.org/docs/ldp/howto/Program-Library-HOWTO/shared-libraries.html. (У них также есть рекомендация о том, куда поместить материал - у большинства разработчиков будет мнение или три :-))

11
ответ дан 15 December 2010 в 17:25

В зависимости от библиотеки человечность хранит свои библиотеки главным образом в трех местах

  1. / lib
  2. /usr/lib
  3. /usr/local/lib

Следующее из Стандарта Иерархии файловой системы

/ lib

/ каталог lib содержит те добавленные изображения библиотеки, должен был загрузить систему и выполнить команды в корневой файловой системе, т.е. двоичными файлами в / мусорном ведре и/sbin.

/usr/lib

/usr/lib включает объектные файлы, библиотеки и внутренние двоичные файлы, которые не предназначаются, чтобы быть выполненными непосредственно пользователями или сценариями оболочки. [22]

Приложения могут использовать единственный подкаталог под/usr/lib. Если приложение использует подкаталог, все архитектурно-зависимые данные, исключительно используемые приложением, должны быть помещены в том подкаталоге.

/usr/local/lib содержит местные библиотеки т.е. одно специфичное для этой системы, но я не могу найти ссылки на/usr/local/lib в FHS, это только содержит объяснение/usr/local.

11
ответ дан 15 December 2010 в 17:25

Ubuntu следует Стандарту Иерархии Файловой системы (http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard), библиотеки регулярных применений должны быть сохранены под/usr/lib.

Обратите внимание на то, что разработка/управление библиотек не является тривиальным предметом, необходимо прочитать некоторую более подробную документацию, вот хорошее учебное руководство: http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.html

2
ответ дан 15 December 2010 в 17:25

В Ubuntu они найдены в /usr/include.

0
ответ дан 15 December 2010 в 17:25

Вы должны указать компилятору, где он может найти вашу библиотеку. Предполагается, что путь к вашей библиотеке - "/path/to/lib/libfoo.a", вы можете скомпилировать и связать вашу программу "hello.c" следующим образом:

gcc -L/path/to/lib -lfoo hello.c

Это не относится к Ubuntu, на самом деле все известные мне C-компиляторы поддерживают эти флаги.

0
ответ дан 15 December 2010 в 17:25

Другие вопросы по тегам:

Похожие вопросы: