Jawaban:
Untuk menghasilkan pustaka bersama, Anda perlu mengkompilasi kode C Anda terlebih dahulu dengan -fPIC
bendera (posisi kode independen).
gcc -c -fPIC hello.c -o hello.o
Ini akan menghasilkan file objek (.o), sekarang Anda ambil dan buat file .so:
gcc hello.o -shared -o libhello.so
EDIT : Saran dari komentar:
Kamu bisa memakai
gcc -shared -o libhello.so -fPIC hello.c
untuk melakukannya dalam satu langkah. - Jonathan Leffler
Saya juga menyarankan untuk menambahkan -Wall
untuk mendapatkan semua peringatan, dan -g
untuk mendapatkan informasi debug, ke gcc
perintah Anda . - Basile Starynkevitch
gcc -shared -o libhello.so -fPIC hello.c
melakukannya dalam satu langkah.
-Wall
untuk mendapatkan semua peringatan, dan -g
untuk mendapatkan informasi debug, ke gcc
perintah Anda .
.o
File @sashoalm pada dasarnya adalah file objek untuk file sumber, sebelum menghubungkannya bersama, ke file yang dapat dieksekusi. Jadi ketika Anda menjalankan gcc -o abc.c abc.o
file objek akan dihasilkan. Maka Anda dapat menggunakan abc.o
file ini untuk membuat .so
file. Untuk membuat begitu banyak file, yang Anda butuhkan hanyalah kode c yang benar yang ditulis dalam .c
file. PS: Hanya untuk menghapus keraguan Anda dalam komentar.