Я хочу додати свою власну бібліотеку для використання в компіляції c, але насправді не знаю, де зберігає її ubuntu.
Я хочу додати свою власну бібліотеку для використання в компіляції c, але насправді не знаю, де зберігає її ubuntu.
Відповіді:
На основі ваших коментарів до вашого запитання, я думаю, що ви насправді запитуєте: "Як встановити власну бібліотеку, яку я написав, і куди її потрібно поставити?"
Загалом, речі, побудовані локально для інших користувачів машини на машині, поміщаються в / usr / local дерево. Файл заголовка повинен зайти в / usr / local / include. Скомпільована бібліотека повинна перейти в / usr / local / lib. Файл .c не є частиною бібліотеки, він є частиною джерела і не є тим, що зазвичай не встановлюється для використання кінцевим користувачем. Вам знадобиться кореневий доступ, щоб розмістити файли в будь-якому з цих місць.
Щоб створити бібліотеку, потрібно спочатку побудувати рішення про те, чи хочете ви статичну або динамічну (спільну) бібліотеку. Більш детальну інформацію про створення спільної бібліотеки можна знайти в розділі 3.4. Створення спільної бібліотеки за адресою http://www.linux.org/docs/ldp/howto/Program-Library-HOWTO/shared-libraries.html . (Вони також мають рекомендації про те, куди подіти речі - більшість розробників матимуть думку чи три :-))
Залежно від бібліотеки, ubuntu зберігає свої бібліотеки переважно у трьох місцях
Далі йде з Стандартної ієрархії файлової системи
/ ліб
Каталог / 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
. Фактичні бінарні файли бібліотеки там не зберігаються. Заголовки можуть вважатися частиною бібліотеки, але їх потрібно встановлювати окремо, і вони використовуються для складання програм, які використовують бібліотеку. Після того як програма, яка використовує бібліотеку, була складена, їй більше не потрібні файли заголовків і не використовувати їх.