Altera o nome de um objeto dentro de um arquivo

1

Minha empresa possui algum software que usa uma biblioteca de terceiros para interagir com um banco de dados oracle. Ele não foi testado há muito tempo e agora que precisamos verificar se ele está funcionando, não podemos fazer com que a biblioteca de terceiros se conecte ao Oracle em nosso ambiente AIX, mas ele funciona no Windows e no Linux.

Nosso software é de 64 bits, o de terceiros é de 64 bits e o cliente da Oracle também é de 64 bits.

Eu tenho o código de terceiros, mas apenas para fins de depuração, não para produção / lançamento.

Ao chamar o dlopen para carregar o arquivo principal do oracle, recebo este erro:  0509-022 Não é possível carregar o módulo /home/OracleTest/libclntsh.a(shr_64.o).         0509-152 Member shr_64.o não está no arquivo

Tudo na internet que consegui encontrar diz que (shr_64.o) é para objetos de 64 bits e (shr.o) é para 32 bits.

Mas, quando verifico o arquivo, vejo que o arquivo de 64 bits tem um shr.o em vez de um arquivo shr_64.o

bash-4.3 $ ar -X64 -t -v libclntsh.a rwxr-xr-x 94110/42424 61808612 30 de outubro de 17:32 2014 shr.o

O código de código de terceiros codifica em shr_64.o para 64 bits. Se eu mudar para shr.o, o código funciona como esperado.

Como não posso alterar o código de terceiros, estou procurando uma maneira de atualizar o objeto em meu arquivo morto para ser nomeado shr_64.o em vez de shr.o

    
por mike ray 22.05.2017 / 19:54

0 respostas