Я хочу добавить свою собственную библиотеку для использования при компиляции c, но не знаю, где ее хранит ubuntu.
Я хочу добавить свою собственную библиотеку для использования при компиляции c, но не знаю, где ее хранит ubuntu.
Ответы:
Исходя из ваших комментариев к вашему вопросу, я думаю, что вы на самом деле спрашиваете: «Как установить написанную мной специальную библиотеку и где ее разместить?»
В общем, вещи, созданные локально для других пользователей на компьютере пользователя, помещаются в дерево / usr / local. Заголовочный файл должен находиться в / usr / local / include. Скомпилированная библиотека должна находиться в / usr / local / lib. Файл .c не является частью библиотеки, он является частью исходного кода и обычно не устанавливается для использования конечным пользователем. Вам понадобится root-доступ для размещения файлов в любом из этих мест.
Чтобы собрать библиотеку, вам нужно будет сначала решить, хотите ли вы статическую или динамическую (общую) библиотеку. Дополнительную информацию о создании общей библиотеки можно найти в разделе 3.4, «Создание общей библиотеки» по адресу http://www.linux.org/docs/ldp/howto/Program-Library-HOWTO/shared-libraries.html . (У них также есть рекомендация о том, где их разместить - у большинства разработчиков будет свое мнение или три :-))
В зависимости от библиотеки, Ubuntu хранит свои библиотеки в основном в трех местах
Следующее из стандарта иерархии файловой системы
/ Lib
Каталог / lib содержит образы совместно используемых библиотек, необходимые для загрузки системы и запуска команд в корневой файловой системе, т.е. двоичными файлами в / bin и / sbin.
/ USR / Lib
/ usr / lib содержит объектные файлы, библиотеки и внутренние двоичные файлы, которые не предназначены для непосредственного выполнения пользователями или сценариями оболочки. [22]
Приложения могут использовать один подкаталог в / usr / lib. Если приложение использует подкаталог, все зависящие от архитектуры данные, используемые исключительно приложением, должны быть помещены в этот подкаталог.
/ usr / local / lib содержит локальные библиотеки, то есть одну специфичную для этой системы, но я не могу найти ссылки на / usr / local / lib в FHS, она содержит только объяснение для / usr / local
Ubuntu следует стандарту иерархии файловых систем ( http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard ), библиотеки обычных приложений должны храниться в / usr / lib.
Обратите внимание, что разработка / управление библиотеками не является тривиальной темой, вы должны прочитать более подробную документацию, вот хороший учебник: http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.html
Вы должны указать компилятору, где он может найти вашу библиотеку. Предполагается, что путь к вашей библиотеке - «/path/to/lib/libfoo.a», вы можете скомпилировать и связать вашу программу «hello.c» следующим образом:
gcc -L/path/to/lib -lfoo hello.c
Это не относится к Ubuntu, на самом деле все известные мне C-компиляторы поддерживают эти флаги.
В Ubuntu они находятся в /usr/include
.
/usr/include
. Фактические двоичные файлы для библиотеки там не хранятся. Заголовки могут считаться частью библиотеки, но их нужно устанавливать отдельно, и они используются для компиляции программ, которые используют библиотеку. Как только программа, использующая библиотеку, была скомпилирована, она больше не нуждается или не использует файлы заголовков.