undefined reference to stricmp
Je suis en train de créer une méthode qui trouve et remplace une chaîne de caractères dans une chaîne, mais j'ai l'air d'avoir d'erreur au moment de la compilation. Pourrais-je obtenir de l'aide à déterminer ce qui se passe?
void replaceString(char *find, char *replace)
{
int len_string,i;
char temp[30];
len_string=strlen(find);
while(1)
{
for(i=0;i<len_string;i++) temp[i]=fgetc(edit);
temp[i+1]=NULL;
/* the stricmp() is used for comparing both string. */
if(stricmp(find,temp)==0)
{
fprintf(edit,"%s ",replace);
fclose(edit);
exit(1);
}
fseek(edit,-(len_string-1),1);
}
}
l'erreur que je reçois au moment de la compilation est undefined reference to stricmp.
Je sais que ce n'est pas bon convention de codage, mais modifier (objet de type FICHIER) est actuellement une variable globale.
OriginalL'auteur Jonathan | 2011-05-07
Vous devez vous connecter pour publier un commentaire.
stricmp
est spécifique à Windows. Si vous n'êtes pas sur Windows,strcasecmp
.merci pour votre aide
Borland Turbo C fourni cette fonction.
strncasecmp
est l'équivalent de remplacement pourstrnicmp
trop.OriginalL'auteur bmargulies
En fait, l'erreur est au moment de la liaison, et NON au moment de la compilation. Votre code fut compilé en un fichier objet en attendant de trouver la mise en œuvre de stricmp, tout en les reliant avec d'autres fichiers de l'objet dont elle ne pouvait pas trouver. D'où le message d'erreur "undefined reference to stricmp". Comme bmargulies souligné, la mise en œuvre est disponible que sur Windows bibliothèques. Vous pouvez passer à strcasecmp() si vous êtes sur compatible POSIX systèmes.
OriginalL'auteur Manish