У моей компании есть программное обеспечение, которое использует стороннюю библиотеку для взаимодействия с базой данных оракула. Он долгое время не тестировался, и теперь, когда нам нужно убедиться, что он работает, мы не можем подключить стороннюю библиотеку к Oracle в нашей среде AIX, но она работает в Windows и Linux.
Наше программное обеспечение является 64-разрядным, стороннее - 64-разрядным, а клиент Oracle также 64-разрядным.
У меня есть сторонний код, но только для целей отладки, а не для производства / выпуска.
При вызове dlopen для загрузки основного архива оракула я получаю эту ошибку:0509-022 Не удается загрузить модуль /home/OracleTest/libclntsh.a(shr_64.o). 0509-152 Пользователь shr_64.o не найден в архиве
Все, что мне удалось найти в Интернете, говорит о том, что (shr_64.o) для 64-битных объектов, а (shr.o) для 32-битных.
Но при проверке архива я вижу, что 64-битный архив имеет shr.o вместо shr_64.o
bash-4.3 $ ar -X64 -t -v libclntsh.a rwxr-xr-x 94110/42424 61808612 30 октября 17:32 2014 г. shr.o
Сторонний код жестко кодирует в shr_64.o для 64 бит. Если я изменю его на shr.o, код будет работать как положено.
Поскольку я не могу изменить сторонний код, я ищу способ обновить объект в моем архиве с именем shr_64.o вместо shr.o