Pertanyaan Di mana Ubuntu menyimpan file pustakanya?


Saya ingin menambahkan perpustakaan saya sendiri untuk digunakan dalam kompilasi c, tetapi tidak benar-benar tahu di mana ubuntu menyimpannya.


13
2017-12-15 09:41


asal


Ini menyimpan di / usr / lib & / usr / include - karthick87
saya menemukan perpustakaan saya di / usr / termasuk bagaimana saya harus memasukkannya? haruskah saya hanya meletakkan file header dan file c dekat atau haruskah saya menulis header dan fungsi bersama-sama dalam satu file .h? - david25
Pustaka dan header adalah hal yang berbeda, / usr / include TIDAK mengandung pustaka, berisi header yang merupakan definisi fungsi / objek yang tersedia dari pustaka. Pertanyaannya harus diperbaiki, sulit untuk memahami apa yang Anda coba capai. - João Pinto


Jawaban:


Berdasarkan komentar Anda atas pertanyaan Anda, saya pikir apa yang Anda benar-benar tanyakan adalah, "Bagaimana cara memasang perpustakaan khusus yang saya tulis dan di mana saya harus meletakkannya?"

Secara umum, hal-hal yang dibangun secara lokal untuk orang lain di mesin untuk pengguna dimasukkan ke dalam / usr / local tree. File header harus masuk ke / usr / local / include. Perpustakaan yang dikompilasi harus masuk ke / usr / local / lib. File .c bukan bagian dari perpustakaan, itu adalah bagian dari sumber dan bukan sesuatu yang biasanya tidak diinstal untuk penggunaan pengguna akhir. Anda akan membutuhkan akses root untuk meletakkan file di salah satu lokasi ini.

Untuk membangun pustaka, Anda harus membuat terlebih dahulu memutuskan apakah Anda menginginkan pustaka statis atau dinamis (bersama). Informasi lebih lanjut tentang membuat pustaka bersama dapat ditemukan di bagian 3.4, Membuat Pustaka Bersama di http://www.linux.org/docs/ldp/howto/Program-Library-HOWTO/shared-libraries.html. (Mereka juga memiliki rekomendasi tentang tempat menaruh barang - sebagian besar pengembang akan memiliki pendapat atau tiga :-))


8
2017-12-15 14:39





Tergantung pada perpustakaan, ubuntu menyimpan perpustakaannya terutama di tiga lokasi

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

Berikut ini adalah dari Standar Hirarki Sistem File

/ lib

Direktori / lib berisi itu   gambar pustaka bersama yang diperlukan untuk boot   sistem dan jalankan perintah di   filesystem root, yaitu. dengan binari di   / bin dan / sbin.

/ usr / lib

/ usr / lib termasuk file objek,   perpustakaan, dan biner internal itu   tidak dimaksudkan untuk dieksekusi   langsung oleh pengguna atau skrip shell.   [22]

Aplikasi dapat menggunakan single   subdirektori di bawah / usr / lib. Jika   aplikasi menggunakan subdirektori, semua   data yang bergantung pada arsitektur   secara eksklusif digunakan oleh aplikasi   harus ditempatkan di dalam itu   subdirektori.

/ usr / local / lib berisi pustaka lokal yaitu khusus untuk sistem ini tetapi saya tidak dapat menemukan referensi ke / usr / local / lib di FHS, ini hanya berisi penjelasan untuk / usr / local.


8
2017-12-15 09:49





Ubuntu mengikuti Filesystem Hierarchy Standard (http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard), pustaka aplikasi reguler harus disimpan di bawah / usr / lib.

Harap dicatat bahwa mengembangkan / mengelola perpustakaan bukanlah subjek sepele, Anda harus membaca beberapa dokumentasi yang lebih rinci, berikut tutorial yang bagus: http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.html


2
2017-12-15 09:49





Anda harus memberi tahu compiler, di mana ia dapat menemukan perpustakaan Anda. Diasumsikan, path ke library Anda adalah "/path/to/lib/libfoo.a", Anda dapat mengkompilasi dan menghubungkan program Anda "hello.c" seperti ini:

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

Ini tidak spesifik untuk Ubuntu, sebenarnya semua C-compiler yang saya tahu mendukung bendera-bendera itu.


0
2017-12-15 09:54





Di Ubuntu mereka ditemukan di /usr/include.


-2
2017-08-30 15:02



Header file berada di /usr/include. Binari aktual untuk pustaka tidak disimpan di sana. Header dapat dianggap sebagai bagian dari pustaka, tetapi harus dipasang secara terpisah, dan digunakan untuk menyusun program yang menggunakan pustaka. Setelah sebuah program yang menggunakan perpustakaan telah dikompilasi, tidak perlu atau menggunakan file header lagi. - Eliah Kagan