Công ty của tôi có một số phần mềm sử dụng thư viện của bên thứ 3 để tương tác với cơ sở dữ liệu orory. Nó đã không được thử nghiệm trong một thời gian dài và bây giờ chúng tôi cần xác minh rằng nó hoạt động, chúng tôi không thể có thư viện bên thứ 3 để kết nối với Oracle trong môi trường AIX của chúng tôi, nhưng nó hoạt động trong windows và linux.
Phần mềm của chúng tôi là 64 bit, bên thứ 3 là 64 bit và máy khách Oracle cũng là 64 bit.
Tôi có mã bên thứ 3, nhưng chỉ cho mục đích gỡ lỗi, không dùng cho sản xuất / phát hành.
Khi gọi dlopen để tải kho lưu trữ chính, tôi gặp phải lỗi này: 0509-022 Mô-đun tải không thể /home/OracleTest/libclntsh.a(shr_64.o). 0509-152 Thành viên shr_64.o không tìm thấy trong kho lưu trữ
Mọi thứ trên internet tôi có thể tìm thấy đều nói rằng (shr_64.o) dành cho các đối tượng 64 bit và (shr.o) là dành cho 32 bit.
Nhưng, khi kiểm tra kho lưu trữ, tôi thấy rằng kho lưu trữ 64 bit có shr.o thay vì shr_64.o
bash-4.3 $ ar -X64 -t -v libclntsh.a rwxr-xr-x 94110/42424 61808612 ngày 30 tháng 10 17:32 2014 shr.o
Mã cứng của bên thứ 3 mã trong shr_64.o trong 64 bit. Nếu tôi thay đổi nó thành shr.o, tất cả các mã hoạt động như mong đợi.
Vì tôi không thể thay đổi mã của bên thứ 3, tôi đang tìm cách cập nhật đối tượng trong kho lưu trữ của mình để được đặt tên là shr_64.o thay vì shr.o