Tôi có thư viện được chia sẻ (* .so) được tạo bằng Công cụ biên dịch Real View (RVCT 3.2) trên mục tiêu cửa sổ. Sau đó, tôi cố gắng liên kết tệp * .so này với ứng dụng của tôi bằng gcc trên hệ thống linux.Liên kết thư viện được chia sẻ bằng gcc
Tùy chọn gcc để liên kết thư viện được chia sẻ này với linux ứng dụng của tôi là gì?
Câu hỏi của tôi là, là lựa chọn -shared
, được sử dụng như
gcc -shared myfile.so
..., được sử dụng để tạo ra các tập tin SO hoặc liên kết các SO nộp? Tôi tin rằng nó tạo ra một cái gì đó như:
gcc -lmyfile.so
Có đủ không? Hoặc là có bất kỳ chuyển đổi khác để nói với các mối liên kết đó là một thư viện động (đối tượng được chia sẻ)?
Tôi có một câu hỏi liên quan: Trong trường hợp thư viện libmyfile.so của tôi là một liên kết tượng trưng đến libyourfile.so, sẽ liên kết chương trình của tôi sử dụng -lmyfile gcc vẫn làm việc? (Tôi cần phải duy trì tính tương thích ngược của một số khách hàng không biết về thay đổi tên thư viện.) – baskin
@jpalecek Liệu nó có hoạt động nếu tên tệp có phần mở rộng .dll không? – saadtaame
Nếu thư viện không nằm trong thư mục '/ usr/bin/ld' thì sao? –