Question

Je suis à la recherche d'un équivalent Windows de l'outil GNU objcopy.Je suis à la recherche pour mettre en œuvre les suggestion posté ici pour mon problème, cependant j'ai besoin de le faire multi-plateforme (Windows, Linux et Mac).Je ne pouvais pas trouver la réponse sur mon ami google, donc peut-être que la solution doit être mis en œuvre différemment.Merci!!!!

Était-ce utile?

La solution

Une partie de la valeur par défaut MSVC de l'outillage: LIB /EXTRACT extrait d'une copie d'un objet; LIB /REMOVE puis le supprime de la bibliothèque.

Je pense LIB /DEF /EXPORT:externalName=internalName aussi serait bénéfique pour vous, lorsque vous placez le fichier de l'objet en retour.

Autres conseils

Si vous n'avez pas l'esprit un hack, le remplacement de toutes les occurrences du nom en conflit par un autre nom de la même longueur dans l'un de la bibliothèque bin fichier de travail.Le faire à vos propres risques.

Exemple

// a.h
void doSomething();

// b.h
void doSomething();

Nous pouvons remplacer doSomething par doSomethink

En python, il serait quelque chose comme:

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()

Et modifier b tête conséquence

// b.h
void doSomethink();

Notez que j'ai utilisé ici le plaine de nom de fonction tel que défini dans l'en-tête correspondant au symbole dans le binaire, mais vous pourriez vouloir utiliser la totalité de la déformation du nom de la place pour éviter les remplacements.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top