Tôi có hai thư viện của bên thứ ba đôi khi có cùng tên biểu tượng được xuất. Khi tệp thực thi được tải, ld thường chọn sai và tôi sẽ gặp sự cố. Tôi không thể làm quá nhiều về nội dung của các thư viện này, vì vậy có thể có cách để hướng dẫn ld cách tìm sự giải thích thích hợp?Ẩn (các) biểu tượng trong đối tượng được chia sẻ từ LD
Hệ điều hành - Solaris 10, chương trình của tôi được tạo bởi autoconf/autotools/gcc, thư viện xung đột là libclntsh (một phần của trình điều khiển Oracle) và OpenLDAP. Thật không may, tôi không thể sử dụng Oracle thực hiện của khách hàng LDAP - nó thiếu nhiều tính năng OpenLDAP có.
được sửa đổi: Mối liên hệ là như sau: libclntsh.so-> A.so-> TRANG CHỦ < -B.so < -libldap_r.so
Hi Dmitry. Xem [câu hỏi của tôi] (http://stackoverflow.com/questions/9909528/how-can-i-remove-a-symbol-from-a-shared-object). Rõ ràng, bạn có thể sử dụng ['objcopy -N foo'] (http://linux.about.com/library/cmd/blcmdl1_objcopy.htm) để xóa biểu tượng của đối tượng dùng chung. –