Câu trả lời:
Để tạo thư viện dùng chung, trước tiên bạn cần biên dịch mã C bằng -fPIC
cờ (mã độc lập vị trí).
gcc -c -fPIC hello.c -o hello.o
Điều này sẽ tạo ra một tệp đối tượng (.o), bây giờ bạn lấy nó và tạo tệp .so:
gcc hello.o -shared -o libhello.so
EDIT : Gợi ý từ các ý kiến:
Bạn có thể dùng
gcc -shared -o libhello.so -fPIC hello.c
để làm điều đó trong một bước. - Jonathan Leffler
Tôi cũng đề nghị thêm -Wall
để nhận tất cả các cảnh báo và -g
để lấy thông tin gỡ lỗi cho các gcc
lệnh của bạn . - Starynkevitch
gcc -shared -o libhello.so -fPIC hello.c
để làm điều đó trong một bước.
-Wall
để nhận tất cả các cảnh báo và -g
để lấy thông tin gỡ lỗi cho các gcc
lệnh của bạn .
.o
về cơ bản là một tệp đối tượng cho tệp nguồn, trước khi liên kết chúng lại với nhau, thành tệp thực thi cuối cùng. Vì vậy, khi bạn chạy gcc -o abc.c abc.o
một tệp đối tượng sẽ được tạo ra. Ans sau đó bạn có thể sử dụng abc.o
tập tin này để tạo .so
tập tin. Để tạo rất nhiều tệp, tất cả những gì bạn cần là một mã c chính xác được viết trong một .c
tệp. PS: Chỉ để xóa nghi ngờ của bạn trong bình luận.