Pregunta

Estoy buscando un equivalente para Windows de la herramienta GNU. objetocopia.Estoy buscando implementar el sugerencia publicada aquí a mi problema, sin embargo necesito hacerlo multiplataforma (Windows, Linux y Mac).No pude encontrar la respuesta en mi amigo de Google, por lo que quizás la solución deba implementarse de manera diferente.¡Gracias!

¿Fue útil?

Solución

Parte de las herramientas predeterminadas de MSVC: LIB /EXTRACT extrae una copia de un objeto; LIB /REMOVE luego lo elimina de la biblioteca.

Creo LIB /DEF /EXPORT:externalName=internalName También sería beneficioso para usted cuando vuelva a colocar el archivo objeto.

Otros consejos

Si no le importa un truco, puede funcionar reemplazar todas las instancias del nombre en conflicto por un nombre diferente de la misma longitud en uno de los archivos bin de la biblioteca.Haga esto bajo su propio riesgo.

Ejemplo

// a.h
void doSomething();

// b.h
void doSomething();

podemos reemplazar doSomething por doSomethink

En Python sería 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()

Y modifique el encabezado b en consecuencia

// b.h
void doSomethink();

Tenga en cuenta que aquí utilicé el nombre de la función simple tal como se define en el encabezado para que coincida con el símbolo en el binario, pero es posible que desee utilizar el nombre completo alterado para evitar reemplazos no deseados.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top