Torna indietro   Hardware Upgrade Forum > Software > Linux, Unix, OS alternativi

DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve
Dopo quasi un mese di utilizzo quotidiano e un viaggio medio-lungo in autostrada, raccontiamo pregi e limiti della Geely EX5: comfort premium, batteria LFP da 60,22 kWh, autonomia fino a 430 km e un prezzo che parte da 38.900 €
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 15-02-2008, 13:55   #1
ramarromarrone
Senior Member
 
Iscritto dal: Jun 2007
Messaggi: 497
[UBUNTU] problemi con gcc

ciao a tutti
ho un problema con gcc sotto ubuntu.
questo è il file prova.c
Quote:
#include <math.h>
#include <stdio.h>
#include <time.h>


int trigonometria(long m)
{
int i = 0;
time_t adesso = time(NULL);
while(difftime(time(NULL), adesso) < m) {
double a;
double x = 65465.1433532;
double y = 4.656;
a = acos(x);
a = asin(x);
a = tan(x);
a = atan2(y,x);
a = cos(x);
a = cosh(x);
a = sin(x);
a = sinh(x);
a = tan(x);
a = tanh(x);
a = exp(x);
a = log(x);
a = log10(x);
a = pow(x,y);
a = sqrt(x);
a = ceil(x);
a = fabs(x);
a = floor(x);
a = fmod(x,y);
i++;
}
return i;

}

int main() {
int r = trigonometria(5);
printf("%i\n",r);
return 0;
}
quando faccio gcc -o prova prova.c
mi dice:

Quote:
/tmp/ccY4sjeE.o: In function `trigonometria':
benc.c.text+0x311): undefined reference to `acos'
benc.c.text+0x31f): undefined reference to `asin'
benc.c.text+0x32d): undefined reference to `tan'
benc.c.text+0x342): undefined reference to `atan2'
benc.c.text+0x350): undefined reference to `cos'
benc.c.text+0x35e): undefined reference to `cosh'
benc.c.text+0x36c): undefined reference to `sin'
benc.c.text+0x37a): undefined reference to `sinh'
benc.c.text+0x388): undefined reference to `tan'
benc.c.text+0x396): undefined reference to `tanh'
benc.c.text+0x3a4): undefined reference to `exp'
benc.c.text+0x3b2): undefined reference to `log'
benc.c.text+0x3c0): undefined reference to `log10'
benc.c.text+0x3d5): undefined reference to `pow'
benc.c.text+0x3f7): undefined reference to `sqrt'
benc.c.text+0x40b): undefined reference to `ceil'
benc.c.text+0x421): undefined reference to `floor'
benc.c.text+0x436): undefined reference to `fmod'
collect2: ld returned 1 exit status
gcc in windows non mi dava questo problema..
perchè?
ramarromarrone è offline   Rispondi citando il messaggio o parte di esso
Old 16-02-2008, 00:16   #2
Gimli[2BV!2B]
Senior Member
 
L'Avatar di Gimli[2BV!2B]
 
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
Devi specificare a gcc di linkare la libreria math (l'equivalente linux delle famigerate dll): basta aggiungere -lm al comando.
Codice:
gcc -lm -o trig trig.c
Con l'opzione -o nome_compilato gli spieghi anche come chiamare il file prodotto dalla compilazione (invece di doverlo poi andare a prendere in /tmp/ccY4sjeE.o come nel tuo tentativo). Risultato:
Codice:
gimli@altarf:~/Desktop$ gcc -o trig -lm trig.c
gimli@altarf:~/Desktop$ ./trig
1817030
Se ti trovi di fronte ad errori del genere significa che devi specificare di linkare una qualche libreria aggiungendo qualche altro -lQUALCOSA (specificando eventualmente la cartella in cui cercarle con -L/CARTELLA/CHE/CONTIENE/LE/LIBRERIE); purtroppo io non conosco tabelle che riportino queste opzioni.
Occorre controllare nei man degli include utilizzati o cercare in internet, oppure sperare che qualcun altro sia più informato.
Resta che man math non da nulla, mentre, ad esempio, man stdio o man string ci sono (se non ti funzionano controlla in Synaptic o Adept di avere installato manpages-dev).
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...)
Gimli[2BV!2B] è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre Recensione Google Pixel 11: non ha l'HiLight dei...
La sedia ergonomica SIHOO torna a 169,99...
Non vogliamo questa roba: gli sviluppato...
Circular presenta Ring 3 Pro e Ring 3 Sl...
Clamoroso in Volkswagen: si valuta la fi...
OpenAI, Astra userà la ricorrenza opaca:...
La rivoluzione silenziosa di Intel: i su...
TrendForce: la memoria di iPhone 18 Pro ...
Su Amazon è in offerta una bella ...
Intel prepara Nova Lake: al debutto fino...
Falso rimborso TARI da 95 euro: il clone...
Fire TV Stick 4K Plus a 38,99€ e 4K Max ...
Attivi i coupon nascosti Amazon di sette...
Il sogno di tutti i nerd, ufficiale la L...
Motorola moto g77 a 217,99€: ottimo smar...
RTX Spark, NVIDIA svela le specifiche de...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 09:14.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v