math.h

Area di discussione libera.

Moderatore: Staff

Regole del forum
1) Rispettare le idee altrui.
2) Evitare le offese dirette.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
gallows
Staff
Staff
Messaggi: 3471
Iscritto il: lun 20 set 2004, 0:00
Desktop: cwm
Distribuzione: OpenBSD
Località: ~/
Contatta:

math.h

Messaggio da gallows »

ho qualche problemino con le funzioni matematiche in C, forse sbaglio la sintassi o ometto qualcosa.. non capisco.
desidererei qualche chiarimento. esempio banale:

Codice: Seleziona tutto

#include <stdio.h>
#include <math.h>

int main(void) {

 float a=pow(2,3);
 printf("%f",a);
 
 return 0;

}
provo a compilarlo:

Codice: Seleziona tutto

> cc -Wall pluto.c 
/tmp/ccI9Zz7V.o(.text+0x29): In function `main':
: undefined reference to `pow'
collect2: ld returned 1 exit status
la sintassi di pow mi sembra corretta e ho incluso math.h. dove sbaglio?

glibc-2.3.5
gcc-3.3.6

grazie dell'attenzione :wink:

Avatar utente
useless
Staff
Staff
Messaggi: 3896
Iscritto il: dom 12 ott 2003, 0:00
Località: A place where the streets have no name
Contatta:

Messaggio da useless »

devi linkare la libreria matematica manualmente: aggiungi -lm alla linea di comando di gcc.

Avatar utente
gallows
Staff
Staff
Messaggi: 3471
Iscritto il: lun 20 set 2004, 0:00
Desktop: cwm
Distribuzione: OpenBSD
Località: ~/
Contatta:

Messaggio da gallows »

toh, questa non la sapevo!
urge lettura di man gcc

grazie useful :wink:

ico
Linux 0.x
Linux 0.x
Messaggi: 92
Iscritto il: sab 4 giu 2005, 0:00
Località: Bassano del Grappa (VI)

Messaggio da ico »

io non ho mai linkato math.h, appure mi funziava 8O ...l'uncio problema che mi sembra di ricordare, è che la funzione pow funzia solo con int, ma forse ricordo male..

ola ;)

Avatar utente
Firetux
Linux 4.x
Linux 4.x
Messaggi: 1465
Iscritto il: gio 10 giu 2004, 0:00
Località: Lecco
Contatta:

Messaggio da Firetux »

ho copiato e incollato il tuo programma nel file pluto.c e non ho problemi:
[firetux@p4m ~]$ cc -Wall pluto.c
[firetux@p4m ~]$ ./a.out
8.000000[firetux@p4m ~]$
glibc 2.3.4
gcc 3.4.3

Avatar utente
gallows
Staff
Staff
Messaggi: 3471
Iscritto il: lun 20 set 2004, 0:00
Desktop: cwm
Distribuzione: OpenBSD
Località: ~/
Contatta:

Messaggio da gallows »

no, la funzione pow() è giusta, tant'è che passando -lm a gcc funziona.
ho provato anche su un'altra current ma ho lo stesso "problema".

Avatar utente
useless
Staff
Staff
Messaggi: 3896
Iscritto il: dom 12 ott 2003, 0:00
Località: A place where the streets have no name
Contatta:

Messaggio da useless »

non è un problema, è giusto così. tanto che ad esempio creando un progetto con kdevelop, di default mette -lm ai cflags.

Rispondi