Come compilare un programma C che utilizza math.h?


14

Sto riscontrando problemi nel file di intestazione math.h e quando utilizzo la funzione radice quadrata come in sqrt(d). Ma il mio compilatore non lo supporta. Per favore, avvisami di questo problema.

La mia versione di Ubuntu è il 2012.


2
Mentre amiamo le domande di programmazione - la domanda deve essere correlata a Ubuntu - puoi chiarire in dettaglio quale sia il problema qui - esempi ecc?
Fossfreedom

è come sqrt ((x2-x1) * (x2-x1) + (y2-y1) * (y2-y1)) ... il mio compilatore non supporta questo comando
shreya

1
rispondi modificando la tua domanda. Fornisci esempi di codice, come stai compilando, versione di Ubuntu, versione del compilatore, hai provato a farlo su un altro compilatore / distro. Cosa succede ecc?
Fossfreedom

1
@shreya Le domande relative ai problemi con il codice che hai scritto devono descrivere il problema specifico - e includere un codice valido per riprodurlo - nella domanda stessa. Vedi SSCCE.org per una guida.
Braiam,

4
Non credo proprio che sia fuori tema. Su molti altri sistemi operativi, come Windows, non è necessario passare un'opzione di linker speciale per utilizzare la libreria matematica nei programmi C. Anche su alcuni sistemi operativi simili a Unix, l'implementazione della libreria C standard non lo richiede. Questo è un problema che molti utenti affrontano quando passano a sistemi GNU / Linux come Ubuntu. Vorrei che la domanda fosse scritta meglio per includere l'errore specifico - se finiamo per considerare questo argomento allora forse dovremmo modificarlo - ma questa non è una domanda di programmazione C generale, è una domanda su come usare gccsu Ubuntu .
Eliah Kagan,

Risposte:


24

Aggiungi -lmalla fine del tuo gcccomando.

Con tutte le versioni recenti di GCC su sistemi GNU / Linux come Ubuntu, quando usi la libreria matematica, devi collegarti esplicitamente ad essa. Non è automaticamente collegato a insieme al resto della libreria C standard.

Se si sta compilando sulla riga di comando con il comando gcco g++, si otterrebbe ciò inserendo -lmalla fine del comando .

Per esempio: gcc -o foo foo.c -lm


5

Se hai intenzione di compilare un programma C con la libreria math.h in LINUX usando GCC o G ++ dovrai usare –lm opzione dopo il comando di compilazione.

gcc xyz.c -o xyz -lm

Qui,

gcc è il comando del compilatore (nome del compilatore)
xyz.c è un nome del file di origine.
-o è un'opzione per specificare il file di output.
xyz è il nome del file di output.
-lm è un'opzione per collegare againt alla libreria matematica ( libm ).

per maggiori dettagli ecco il link contenente l'articolo completo su di esso.
Compilazione del programma C con math.h in Linux.


Dopo il comando di collegamento, non il comando di compilazione. (Ci scusiamo per il nitpicking, ma farlo bene aiuta a capire altre situazioni).
mousomer,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.