Bonjour à tous
J'aimerais compiler un fichier en remplaçant l'appel à une fonction par un appel à une autre fonction, en utilisant un fichier de link. J'utilise un fichier source :
fichier f1.c :
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| #include <stdio.h>
extern void fct1_wrongname();
void fct9()
{
printf("fct9\n");
}
int main( int argc, char** argv)
{
fct1_wrongname();
return 0;
} |
je compile avec la commande :
<i>gcc -O0 -xc -g -Wall -c f1.c -of1.o</i>
puis construis avec :
<i>ld -T'Link.cmd' -O0 -Map out.map -o rename.exe f1.o</i>
Le fichier Link.cmd contient :
La fonction fct1_wrongname n'existe pas, et je voudrais la remplacer au link par fct9. Or j'obtiens toujours le message suivant :
Link.cmd:4: undefined symbol `fct9' referenced in expression
Je dois utiliser un script de link pour appliquer le principe à un projet plus gros. Je ne peux pas utiliser une définition de symbole (type -D"fct1_wrongname=fct9") car il y a énormément de symboles.
Cela fait un moment que je cherche, mais je n'ai pas réussi à trouver d'info.
Pouvez-vous m'aider ?
Merci par avance
Damien
Partager