Tôi đang biên soạn một số mã sử dụng libcurl trên hệ thống Debian Linux. Máy dev của tôi đang chạy Debian 5 nhưng tôi muốn hệ nhị phân có thể sử dụng được trên các hệ thống Debian 4 cũ hơn.Làm thế nào để bạn liên kết đến một phiên bản cụ thể của một thư viện được chia sẻ trong GCC
Tôi thấy rằng nếu tôi chỉ định -lcurl nó sẽ liên kết đến libcurl.so.4 nhưng Debian 4 hệ thống chỉ có libcurl.so.3
Có một số cách tôi có thể nói GCC để liên kết đến một trong hai libcurl.so.3 (tồn tại trong cả Debian 4 và 5) hoặc chỉ libcurl.so để nó sử dụng bất kỳ phiên bản nào có sẵn?
Trên Debian cũ hơn, không phải là libcurl.so là một liên kết tượng trưng đến libcurl.so.3? Tôi có nghĩa là, có vẻ lạ rằng -lcurl không phải là điều đúng theo mặc định. –
kastauyra: các phiên bản không, hoặc ít nhất không thể được giả định là, tương thích nhị phân. Vì vậy, khi bạn liên kết nó ghi lại phiên bản chính liên quan đến trong nhị phân: nếu bạn biên dịch trên hệ thống mới hơn, nó sẽ yêu cầu phiên bản 4 và không hoạt động trên hệ thống cũ. (Trên thực tế những gì nó ghi là soname, mà là một chuỗi được lưu trữ trong tập tin thư viện mà thông thường nhưng không nhất thiết phải là một cái gì đó "libcurl.so.3") –