Pergunta

Estou procurando um equivalente para Windows da ferramenta GNU cópia do objeto.Estou procurando implementar o sugestão postada aqui para o meu problema, porém preciso fazer isso em várias plataformas (Windows, Linux e Mac).Não consegui encontrar a resposta no meu amigo google, então talvez a solução precise ser implementada de forma diferente.Obrigado!

Foi útil?

Solução

Parte das ferramentas padrão do MSVC: LIB /EXTRACT extrai uma cópia de um objeto; LIB /REMOVE em seguida, remove-o da biblioteca.

Eu penso LIB /DEF /EXPORT:externalName=internalName também seria benéfico para você, quando você colocasse o arquivo objeto novamente.

Outras dicas

Se você não se importa com um hack, substituir todas as instâncias do nome conflitante por um nome diferente do mesmo comprimento em um arquivo bin da biblioteca pode funcionar.Faça isso por sua própria conta e risco.

Exemplo

// a.h
void doSomething();

// b.h
void doSomething();

Podemos substituir doSomething por doSomethink

Em python seria algo como:

f = open('b.lib',"rb")
s = f.read()
f.close()
s = s.replace(b'doSomething',b'doSomethink')
f = open('b.lib',"wb")
f.write(s)
f.close()

E modifique o cabeçalho b de acordo

// b.h
void doSomethink();

Observe que aqui usei o nome da função simples conforme definido no cabeçalho para corresponder ao símbolo no binário, mas você pode querer usar o nome completo desconfigurado para evitar substituições indesejadas.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top