Domanda Funzioni della libreria string.h e math.h non funzionanti su linux

l3rn

Utente Iron
20 Maggio 2020
9
4
2
17
Ultima modifica:
ciao a tutti, ho un problema con le librerie string.h e math.h utilizzando come Os Fedora mi da questo problema compilando questo programmino con gcc.
C:
#include<stdio.h>
#include<string.h>
#include<math.h>

int main(){
    int a = 1;
    char ciao[] = "ciao";

    strupr(ciao);
    printf("%s",ciao);
    pow(a,2);
    printf("%d",a);

    return 0;

}

gcc dopo aver compilato mi da due errori e sembra che nella librerie string.h e math.h non contengono la funzione "strupr" per sting... e la funzione pow.... per math.. anche se sono due funzioni di due librerie sono nello standard del c... e non mi spiego il perché sembra che non esistano
l'errore è il seguente:
Bash:
[Leonardo@fedora Scrivania]$ gcc c.c -o c

c.c: In function ‘main’:

c.c:9:9: warning: implicit declaration of function ‘strupr’; did you mean ‘strstr’? [-Wimplicit-function-declaration]

    9 |         strupr(ciao);

      |         ^~~~~~

      |         strstr

/usr/bin/ld: /tmp/cc0bYuIf.o: in function `main':

c.c:(.text+0x27): undefined reference to `strupr'

/usr/bin/ld: c.c:(.text+0x61): undefined reference to `pow'

collect2: error: ld returned 1 exit status


qualcuno sa da cosa dipende questo errore?
e come si fa a risolvere?
 
Quando includi math.h devi compilare con gcc -lmath -o pippo pippo.c. La funzione stupr non la trova perché, giustamente, non esiste; cercando online, il primo link che trovo con google mi dice: "Note : This is a non-standard function that works only with older versions of Microsoft C.". La puoi facilmente implementare a mano.
 
  • Mi piace
Reazioni: DanyDollaro