Di mana Ubuntu menyimpan file perpustakaannya?

17

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

david25
sumber
5
Ini menyimpan di / usr / lib & / usr / include
karthick87
saya menemukan perpustakaan saya di / usr / termasuk bagaimana saya harus meletakkannya? haruskah saya meletakkan file header dan file ac di dekat itu atau haruskah saya menulis header dan fungsi bersama dalam satu file .h?
david25
3
Pustaka dan header adalah hal yang berbeda, / usr / include TIDAK mengandung pustaka, itu berisi tajuk yang merupakan definisi fungsi / objek yang tersedia dari pustaka. Pertanyaannya harus ditingkatkan, sulit untuk memahami apa yang ingin Anda capai.
João Pinto

Jawaban:

11

Berdasarkan komentar Anda untuk pertanyaan Anda, saya pikir apa yang sebenarnya Anda tanyakan adalah "Bagaimana cara saya menginstal perpustakaan khusus yang saya tulis dan di mana saya harus meletakkannya?"

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

Untuk membangun perpustakaan, Anda harus membangun terlebih dahulu memutuskan apakah Anda ingin perpustakaan statis atau dinamis (dibagi). Informasi lebih lanjut tentang membuat perpustakaan bersama dapat ditemukan di bagian 3.4, Membuat Perpustakaan Bersama di http://www.linux.org/docs/ldp/howto/Program-Library-HOWTO/share-libraries.html . (Mereka juga memiliki rekomendasi tentang di mana harus meletakkan barang - kebanyakan pengembang akan memiliki pendapat atau tiga :-))

jerny
sumber
11

Bergantung pada perpustakaan, ubuntu menyimpan perpustakaannya terutama di tiga lokasi

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

Berikut ini dari Standar Sistem Hierarki File

/ Lib

Direktori / lib berisi gambar-gambar perpustakaan bersama yang diperlukan untuk mem-boot sistem dan menjalankan perintah di sistem file root, yaitu. oleh binari di / bin dan / sbin.

/ usr / lib

/ usr / lib termasuk file objek, pustaka, dan binari internal yang tidak dimaksudkan untuk dieksekusi langsung oleh pengguna atau skrip shell. [22]

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

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

binW
sumber
0

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

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

Ini bukan khusus untuk Ubuntu, sebenarnya semua C-compiler yang saya tahu mendukung flag-flag itu.

jujur
sumber
-2

Di Ubuntu mereka ditemukan di /usr/include.

Evanson Wachira Wang'ombe
sumber
1
File header ada di/usr/include. Binari sebenarnya untuk perpustakaan tidak disimpan di sana. Header dapat dianggap sebagai bagian dari perpustakaan, tetapi harus diinstal secara terpisah, dan digunakan untuk mengkompilasi program yang menggunakan perpustakaan. Setelah sebuah program yang menggunakan pustaka dikompilasi, ia tidak perlu atau menggunakan file header lagi.
Eliah Kagan