Khi biên dịch file đối tượng để đưa vào thư viện liên kết động, cần phải thêm tùy chọn –fpic, (pic – Position Independence Code: Mã lệnh định vị độc lập).
Biên dịch cong.c và tru.c thành file đối tượng phục vụ cho thư viện liên kết động như sau:
$gcc -c -fpic cong.c tru.c
Để tạo ra file thư viện liên kết động từ các file. o, sử dụng trình biên dịch gcc với tùy chọn -shared.
$gcc -shared cong.o tru.o -o libfoo.so
Nếu file libfoo.so đã có trước đó rồi thì không cần dùng đến tùy chọn –o
$gcc -shared cong.o tru.o libfoo.so
Biên dịch lại chương trình program.c như sau:
$gcc program.c -o program -L. -lfoo
Với tùy chọn –L trình biên dịch và liên kết gcc sẽ tìm thư viện libfoo.a hoặc libfoo.so trong thư mục hiện hành để tạo ra file chương trình program.
$export LD_LIBRARY_PATH=.:
Hoặc chỉ định một đường dẫn tuyệt đối bao gồm cả thư mục hiện hành
$exprot LD_LIBRARY_PATH=/myprog/lib: /other/lib:.
Chạy lại chương trình kết quả sẽ như mong muốn:
$ ./program
» Tin mới nhất:
» Các tin khác: