Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Due mesi di Battlefield 6: dalla campagna al battle royale, è l'FPS che stavamo aspettando
Due mesi di Battlefield 6: dalla campagna al battle royale, è l'FPS che stavamo aspettando
Abbiamo giocato a lungo a Battlefield 6, abbiamo provato tutte le modalità multiplayer, Redsec, e le numerose personalizzazioni. In sintesi, ci siamo concentrati su ogni aspetto del titolo per comprendere al meglio uno degli FPS più ambiziosi della storia dei videogiochi e, dopo quasi due mesi, abbiamo tirato le somme. In questo articolo, condividiamo con voi tutto ciò che è Battlefield 6, un gioco che, a nostro avviso, rappresenta esattamente ciò che questo genere attendeva da tempo
Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare
Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare
Abbiamo messo alla prova il drone Antigravity A1 capace di riprese in 8K a 360° che permette un reframe in post-produzione ad eliche ferme. Il concetto è molto valido, permette al pilota di concentrarsi sul volo e le manovre in tutta sicurezza e decidere con tutta tranquillità come gestire le riprese. La qualità dei video, tuttavia, ha bisogno di uno step in più per essere competitiva
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Dopo oltre 4 anni si rinnova la serie Sony Alpha 7 con la quinta generazione, che porta in dote veramente tante novità a partire dai 30fps e dal nuovo sensore partially stacked da 33Mpixel. L'abbiamo provata per un breve periodo, ecco come è andata dopo averla messa alle strette.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 28-04-2009, 15:37   #1
aleksay
Junior Member
 
L'Avatar di aleksay
 
Iscritto dal: Jul 2008
Messaggi: 20
[C/C++] Compilazione Thread POSIX

Salve a tutti,
Da un po di tempo mi e venuto il pallino di imparare la programmazione con i thread in C.
googlando ho visto che bisogna inserire tra le opzioni di gcc l'opzione -lpthread ma quando lo lancio l'output e questo:

gcc -o threadProve threadProve.c –lpthread
gcc: –lpthread: No such file or directory
make: *** [threadProve] Error 1


premetto che il sorgente in questione e il classico esempio di utilizzo di thread sincronizzati tramite pthread_mutex_* e nient'altro.
Anche provando ad installare altre librerie messe a disposizione dalla mia distro (debian lenny)
non son riuscito a risolvere...
Grassie in anticipo per ogni suggerimento
aleksay è offline   Rispondi citando il messaggio o parte di esso
Old 28-04-2009, 18:32   #2
BrutPitt
Senior Member
 
L'Avatar di BrutPitt
 
Iscritto dal: Mar 2009
Città: Bologna
Messaggi: 1174
libpthread.a fa parte del pacchetto glibc, ma dovresti averlo gia' installato se non hai errori in compilazione e trova "pthread.h".
(a meno che non hai installato solo i glibc-headers)

Prova a fare un whereis libpthread da command line, per vedere se e' localizzato sulla tua macchina... se cosi' fosse prova a specificare il percorso di dove e' ubicato il file, al compilatore, con l'opzione -Lpercorso.
BrutPitt è offline   Rispondi citando il messaggio o parte di esso
Old 28-04-2009, 18:51   #3
aleksay
Junior Member
 
L'Avatar di aleksay
 
Iscritto dal: Jul 2008
Messaggi: 20
uoo grazie per la risposta!! stavo quasi per disperare

il comando mi da due coppie di di percorsi anzi te lo posto

/usr/lib/libpthread.a
/usr/lib/libpthread.so
/usr/lib64/libpthread.a
/usr/lib64/libpthread.so

adesso provo
aleksay è offline   Rispondi citando il messaggio o parte di esso
Old 28-04-2009, 18:56   #4
aleksay
Junior Member
 
L'Avatar di aleksay
 
Iscritto dal: Jul 2008
Messaggi: 20
questo e il risultato di quattro tentativi consecutivi....non essendo molto sicuro della sintassi...

ale@debian:~/Desktop/sosr/src$ make threadProve
gcc -o threadProve threadProve.c –lpthread -L /usr/lib/libpthread.so
gcc: –lpthread: No such file or directory
make: *** [threadProve] Error 1
ale@debian:~/Desktop/sosr/src$ make threadProve
gcc -o threadProve threadProve.c –lpthread -L /usr/lib
gcc: –lpthread: No such file or directory
make: *** [threadProve] Error 1
ale@debian:~/Desktop/sosr/src$ make threadProve
gcc -o threadProve threadProve.c –lpthread -L/usr/lib
gcc: –lpthread: No such file or directory
make: *** [threadProve] Error 1
ale@debian:~/Desktop/sosr/src$ make threadProve
gcc -o threadProve threadProve.c –lpthread -L/usr/lib/libpthread.so
gcc: –lpthread: No such file or directory
make: *** [threadProve] Error 1

come vedi...niente..forse va specificato prima il path della libreria???
aleksay è offline   Rispondi citando il messaggio o parte di esso
Old 28-04-2009, 20:21   #5
BrutPitt
Senior Member
 
L'Avatar di BrutPitt
 
Iscritto dal: Mar 2009
Città: Bologna
Messaggi: 1174
Visto che hai ubuntu a 64bit per default compila a 64bit... per cui la sintassi e':

gcc -o threadProve threadProve.c –lpthread -L/usr/lib64

Se vuoi compilare a 32bit devi specificare l'opzione -m32.

gcc -m32 -o threadProve threadProve.c –lpthread -L/usr/lib
BrutPitt è offline   Rispondi citando il messaggio o parte di esso
Old 28-04-2009, 21:21   #6
aleksay
Junior Member
 
L'Avatar di aleksay
 
Iscritto dal: Jul 2008
Messaggi: 20
avevo gia provato ma niente continua a "non trovare" il file -lpthread
ti posto ancora l'output della console per chiarezza:

ale@debian:~/Desktop/sosr/src$ make threadProve
gcc -o threadProve threadProve.c –lpthread -L/usr/lib64
gcc: –lpthread: No such file or directory
make: *** [threadProve] Error 1

e cmq lib64 non dovrebbe essere solo un link alla cartella /usr/lib???
P.S. ...io non uso ubuntu...la mia e una debian dura e pura
aleksay è offline   Rispondi citando il messaggio o parte di esso
Old 29-04-2009, 00:19   #7
BrutPitt
Senior Member
 
L'Avatar di BrutPitt
 
Iscritto dal: Mar 2009
Città: Bologna
Messaggi: 1174
E perche' ho immaginato che avessi ubuntu? ...
Nemmeno io ho ubuntu... e nemmeno una debian...

Comunque poco dovrebbe cambiare.

Puo' essere un symbolic link, al limite verifica... ... ma da qui non sapendolo ti avevo fatto specificare /usr/lib64

Qui da me, su Fedora, /usr/lib64 contiene le libraries a 64bit e /usr/lib quelle a 32bit, nessun symbolic link... ma alcune distribuzioni usano /usr/lib32 per le lib a 32bit e /usr/lib come simbolic link per puntare alla directory di default.

Ho appena provato a compilare un mio programma da command line, con entrambi i comandi che ho postato... e non ho problemi sia a 32 che a 64 bit.

Prova ad aggiungere l'opzione -Wl,-verbose: non risolve il problema ma dice al linker di essere "prolisso"... e nell'output si possono controllare i percorsi di ricerca delle libraries che cerca, dove le cerca, e che usa.

Insomma una cosa del genere:
gcc -Wl,-verbose -o threadProve threadProve.c –lpthread -L/usr/lib64

P.S.
L'output e' lungo... per cui al limite ridirigi su file... anche se l'output dei percorsi di ricerca e' solo l'ultima parte.
Se poi vuoi postare, posta solo quella.
BrutPitt è offline   Rispondi citando il messaggio o parte di esso
Old 29-04-2009, 00:37   #8
BrutPitt
Senior Member
 
L'Avatar di BrutPitt
 
Iscritto dal: Mar 2009
Città: Bologna
Messaggi: 1174
Scusa... ci sto facendo caso solo adesso... mi aspetterei un messaggiod del linker tipo:
/usr/bin/ld: cannot find -lpthread

Un messaggio del tipo:
gcc: –lpthread: No such file or directory

mi sembra piu' come se gcc cercasse -lpthread, come file da compilare... e "ovviamente" non lo trovasse.

Che versionde di gcc hai?
gcc -v

Stai usando sempre il makefile?
Prova da linea di comando... al limite.
BrutPitt è offline   Rispondi citando il messaggio o parte di esso
Old 29-04-2009, 14:39   #9
aleksay
Junior Member
 
L'Avatar di aleksay
 
Iscritto dal: Jul 2008
Messaggi: 20
ok allora la versione di gcc e la 4.3.2-1.1
il comando gcc -v tra le altre cose mi fa vedere anche le opzioni con cui e configurato, tra queste ho notato l'opzione "--enable-threads=posix" il che mi sembra confortante...
per quanto riguarda l'uso del makefile non ho visto nessuna differenza anche perche e mooolto semplice contiene solo il target e il comando gcc senza variabili ne condizioni...e adesso la cosa piu divertente: l'opzione verbose non mi dice assolutamente niente!!!!! o cmq niente di piu..ti incollo per credere:

ale@debian:~/Desktop/sosr/src$ gcc -Wl,-verbose -o threadProve threadProve.c –lpthread -L/usr/lib64
gcc: –lpthread: No such file or directory
ale@debian:~/Desktop/sosr/src$

sembra che questo sia tutto...
a gia..riguardo alle librerie...essendo che ho "rubacchiato" un testo di un progetto scolastico non dovrebbe proprio cambiare niente se si compila a 32 o a 64...anche perche si tratta proprio solo di utilizzare lo standard posix
aleksay è offline   Rispondi citando il messaggio o parte di esso
Old 29-04-2009, 15:09   #10
BrutPitt
Senior Member
 
L'Avatar di BrutPitt
 
Iscritto dal: Mar 2009
Città: Bologna
Messaggi: 1174
E' come pensavo... -Wl,-verbose e' un'opzione da passare al linker, ma al linker non c'arriva proprio... sta cercando -lpthread come file da compilare.

Prova a spostare le opzioni, secondo le direttive dell'help:
gcc -Wl,-verbose –lpthread -L/usr/lib64 -o threadProve threadProve.c

Oppure prova a compilare solo con -c... e poi linkare con ld.

Anche se anche io ho la 4.3.2-7... e compila senza una grinza.
BrutPitt è offline   Rispondi citando il messaggio o parte di esso
Old 29-04-2009, 15:14   #11
BrutPitt
Senior Member
 
L'Avatar di BrutPitt
 
Iscritto dal: Mar 2009
Città: Bologna
Messaggi: 1174
O ancora meglio... passi direttamente al linker le direttive:

gcc -Wl,-verbose,–lpthread,-L/usr/lib64 -o threadProve threadProve.c

o senza l'opzione -verbose:

gcc -Wl,–lpthread,-L/usr/lib64 -o threadProve threadProve.c
BrutPitt è offline   Rispondi citando il messaggio o parte di esso
Old 29-04-2009, 15:30   #12
aleksay
Junior Member
 
L'Avatar di aleksay
 
Iscritto dal: Jul 2008
Messaggi: 20
guarda...io non so che dire...piu uso il C per programmare e piu mi convinco che gcc in realta non sia un programma ma un bambino capriccioso e lunatico!!!! davvero non ha motivo!!

ho provato adesso a fare come mi dicevi tu ad invertire le opzioni e niente sempre lo stesso risultato...
allora mi son collegato in remoto al server della scuola che usa gcc 3.4.1 (architettura Sun Sparc qualcosaltro) faccio un paio di tentativi sempre lo stesso risultato...provo un ultima volta e..tadaaa...me lha compilato!!!!
al che gia rassegnato a dover sviluppare tutto su vi in remoto (che equivale al suicidio....)
faccio un ultimo tentativo in locale e...tadaaa!!! ha funzionato!!! ....
Si ok son contento di esserci riuscito...ma non ha senso!!!!

Secondo te puo esistere una motivazione logica a tutto cio???
aleksay è offline   Rispondi citando il messaggio o parte di esso
Old 10-02-2011, 22:03   #13
Missionario86
Junior Member
 
Iscritto dal: Jul 2008
Messaggi: 2
Credo che ormai, dopo quasi 2 anni, a chi ha postato la domanda, questa risposta non sarà più utile, ma spero che sia utile a qualcun'altro, che come me è appena incappato in questo problemino.

Mi spiego, quando si lancia dalla shell il comando, si deve fare attenzione al "-" che si trova davanti a lpthread. Se si guarda bene è diverso da quello scritto davanti al "-o", è più lungo rispetto ai precendenti. Questo è solo un banale problema di copia/incolla. Basta cancellarlo e mettere il trattino normale e il problema scompare.

Un saluto a tutti

Ultima modifica di Missionario86 : 10-02-2011 alle 22:05.
Missionario86 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Due mesi di Battlefield 6: dalla campagna al battle royale, è l'FPS che stavamo aspettando Due mesi di Battlefield 6: dalla campagna al bat...
Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare Antigravity A1: drone futuristico per riprese a ...
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator Sony Alpha 7 V, anteprima e novità della ...
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1 realme GT 8 Pro Dream Edition: prestazioni da fl...
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum OVHcloud Summit 2025: le novità del cloud...
Apple in piena tempesta: anche il boss d...
Due GeForce GTX 580 in SLI: l'insospetta...
TSMC dà i numeri: dal processo N7...
La ricarica wireless dei Samsung Galaxy ...
Stop ai social per gli Under 16: l'Austr...
Google svela i videogiochi più ce...
TikTok lancia il nuovo feed con contenut...
Amazon aggiorna gli sconti e si prepara ...
GeForce NOW: 50% di sconto e 30 nuovi gi...
Insta360 Ace Pro 2 in offerta: disponibi...
Roborock Saros 10R a 909€ invece di 1.39...
Solo oggi due monitor Acer a prezzi assu...
FRITZ!Box in forte sconto su Amazon: mod...
Apple + Samsung = monopolio totale nel Q...
6 TV 4K in super sconto su Amazon, anche...
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: 02:04.


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