PDA

View Full Version : Grrrrrrrrrr, xchè non riesco mai a compilare??


lamalta
30-08-2004, 15:41
Ciao a tutti.
Perchè quasi ogni volta che cerco di compilare un programma ottengo delgi errori??
Il bello poi è che non ho idea di come risolverli, mi aiutate voi?

lopster 1.2.2, ./configure ok, make:

make[1]: Entering directory `/home/lamalta/Desktop/lopster-1.2.2'
Making all in src
make[2]: Entering directory `/home/lamalta/Desktop/lopster-1.2.2/src'
gcc -g -O2 -W -Wall -D_GNU_SOURCE -o lopster mtypes.o global.o browse.o sarray.o buffer.o transfer.o bannet.o files.o utils.o main.o log.o support.o file_tree.o interface.o dirselect.o scheme.o resume.o server.o preferences.o dialog.o splash.o exec.o md5.o wizard.o statistic.o whois.o about.o napster.o share2.o callbacks.o filetips.o handler.o connection.o getopt.o getopt1.o string_list.o commands.o subscription.o chat.o search.o userinfo.o mp3_ext.o flac_ext.o hotlist.o ogg_ext.o clist_rename.o ping.o irc.o irc_handler.o napster_handler.o -L/opt/gnome/lib -L/usr/X11R6/lib -lgtk -lgdk -rdynamic -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm -logg -lFLAC -lz
connection.o(.text+0x1c94): In function `my_gethostbyname':
/home/lamalta/Desktop/lopster-1.2.2/src/connection.c:226: undefined reference to `pthread_create'
collect2: ld returned 1 exit status
make[2]: *** [lopster] Error 1
make[2]: Leaving directory `/home/lamalta/Desktop/lopster-1.2.2/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/lamalta/Desktop/lopster-1.2.2'
make: *** [all-recursive-am] Error 2

Help grazie!!

NA01
30-08-2004, 15:56
controlla che nel make file non manchi
-lpthread sulla riga di compilazione

cia

o forse era una cosa da fare nel configure...
mi sembra di ricordare una cosa del genere per lopster!
prova a lanciare ./configure --help | grep pthread

lamalta
30-08-2004, 16:08
RISOLTO!!
Olè
Ho dato ./configure --with-pthread=no e funziona!
Ma cosa è questo pthread?
Grazie ancora

ilsensine
30-08-2004, 16:16
E' una cosetta che a Lopster fa molto comodo.

Puoi provare a riconfigurare con le pthread e ad eseguire questo invece del make normale?
make LDFLAGS=-lpthread

Mi sembra chiaro che è un piccolo bug nello script di configurazione, facilmente risolvibile (se non funziona il make che ti ho indicato ci sono altri modi).

lamalta
30-08-2004, 16:26
Gentile moderatore,
ti dirò, funziona anche come hai detto tu!
Ma che cambia?
Grazie mille.


p.s.
ma la faccia del pinguino chi è? Sembra frizzi (senza offesa!)

kibuzo
30-08-2004, 18:16
a me sembra bill gates

lamalta
30-08-2004, 18:17
Originariamente inviato da kibuzo
a me sembra bill gates

azz è vero!

ilsensine
30-08-2004, 21:03
Originariamente inviato da lamalta
Gentile moderatore,
ti dirò, funziona anche come hai detto tu!
Ma che cambia?
Grazie mille.

Vuoi passare notti insonni imparando a programmare o preferisci vivere? :D


ma la faccia del pinguino chi è? Sembra frizzi (senza offesa!)
E' una icona mostrata tempo fa da Punto Informatico in un articolo dove parlava di linux sulla xbox.

lamalta
30-08-2004, 21:37
Originariamente inviato da ilsensine
Vuoi passare notti insonni imparando a programmare o preferisci vivere? :D


No nonotti insonni no, anche perchè qualcosa di programmazione so...
Daiii non fare il prezioso!
Grazie

NA01
30-08-2004, 22:02
l'opzione di configure non fa altro che mettere -lpthread nella linea di gcc.
è un'opzione che deriva dalla versione vecchia i cui era opzionale, ma a quanto pare è diventata obbligatoria nella 1.2, e nessuno ha modificato il configure ;)
in quanto a -lpthread non fa altro che aggiungere alle librerie usate per compilare quelle per la gestione dei thread.
infatti l'errore si riferiva alla funzione pthread_create che non fa altro che creare un nuovo 3d partendo dalla funzione passata come parametro
es

#include <iostream>

using namespace std;

void* thread (void* variabile_inutile){
while(1){
cout <<"b";
}
}

int main(){
pthread_t id_3d;
//lascia nulli gli attributie i parametri
pthread_create(&id_3d,NULL,&thread,NULL);
while(1){
cout <<"a";
}
return 0;
}

adesso non capisco perchè se lo compilo senza -lpthread non mi dà l'errore, ma se provo a farlo senza mi dà un bel segmentation-fault :D
eppure mi ricordavo errori di compilazione:wtf: ma forse era su un'altra versione di gcc

ciaaaa

stefanoxjx
31-08-2004, 13:00
Originariamente inviato da ilsensine

E' una icona mostrata tempo fa da Punto Informatico in un articolo dove parlava di linux sulla xbox.

Io ho sempre pensato che fosse ilsensine che assomigliava a bill :D

Chiedo perdono, non bannarmi :ave: