#1 Le 25/07/2006, à 02:04
- zedtux
[Anjuta] Undefined reference to `g_thread_init' au linkage...
Salut les developpeur
Donc j'utilise Anjuta, et cet tête de mule ne veux pas me linker mon soft en GTK, dans lequel je veux créer un thread en Glib.
Je doit donc utiliser g_thread_init(NULL); mais qui pose problème au linkage.
Voici mes commandes actuels :
Comment puis-je faire pour ce que ce code compile ?
#include <stdio.h>
#include <gtk/gtk.h>
void *print_message_function( void *ptr );
int main()
{
GThread *Thread1, *Thread2;
char *message1 = "Thread 1";
char *message2 = "Thread 2";
GError *err1 = NULL ;
GError *err2 = NULL ;
if( !g_thread_supported() )
{
g_thread_init(NULL);
gdk_threads_init(); // Called to initialize internal mutex "gdk_threads_mutex".
printf("g_thread supported\n");
}
else
{
printf("g_thread NOT supported\n");
}
if( (Thread1 = g_thread_create((GThreadFunc)print_message_function, (void *)message1, TRUE, &err1)) == NULL)
{
printf("Thread create failed: %s!!\n", err1->message );
g_error_free ( err1 ) ;
}
if( (Thread2 = g_thread_create((GThreadFunc)print_message_function, (void *)message2, TRUE, &err2)) == NULL)
{
printf("Thread create failed: %s!!\n", err2->message );
g_error_free ( err2 ) ;
}
g_thread_join(Thread1);
g_thread_join(Thread2);
return 0;
}
void *print_message_function( void *ptr )
{
char *message;
g_usleep(1000000);
message = (char *) ptr;
printf("%s \n", message);
g_usleep(1000000);
printf("%s \n", message);
return(NULL);
}
Merci d'avance !
RECOLLER VOS FICHIERS XTM AVEC TUXTREMSPLIT !!
Adhérant April numéro 4985 [Rejoindre l'April moi aussi !].
Hors ligne
#2 Le 25/07/2006, à 12:04
- regis_f
Re : [Anjuta] Undefined reference to `g_thread_init' au linkage...
C'est parce qu'il faut rajouter la libgthread-2.0 dans la liste de pkg-config
exemple :
pkg-config gtk+-2.0 gthread-2.0 --libs --cflags
Je te renvois sur le site d'Anjuta pour configurer correctement le project
Beuvez, beuvez, mais bourré... Jamais !
Hors ligne
#3 Le 25/07/2006, à 22:48
- zedtux
Re : [Anjuta] Undefined reference to `g_thread_init' au linkage...
Merci regis_f mais ca ne marche pas
J'ai ajouté la ligne que tu donne, à la compilation, ou au linkage, même les deux, mais impossible
Je vais aller voire le site d'anjouta.
EDIt :
Arf... leur FAQ ne marche pas ... J'ai trouvé une question qui expliquait comment inclure le GTK, mais quand ont clique dessus.... page blanche...
Dernière modification par zedtux (Le 25/07/2006, à 22:51)
RECOLLER VOS FICHIERS XTM AVEC TUXTREMSPLIT !!
Adhérant April numéro 4985 [Rejoindre l'April moi aussi !].
Hors ligne
#4 Le 26/07/2006, à 06:11
- regis_f
Re : [Anjuta] Undefined reference to `g_thread_init' au linkage...
C'est un problème Anjuta parce que j'ai pris ton fichier (main.c) que j'ai compilé avec la commande suivante:
$gcc -o montest main.c `pkg-config gtk+-2.0 gthread-2.0 --libs --cflags`
$./montest
g_thread supported
Thread 1
Thread 2
Thread 1
Thread 2
Anjuta est un peu lourd dans la gestion des projets. Je ne l'utilise plus que pour la génération de projet (et encore !) et comme éditeur de texte.
PS: Les liens de la doc anjuta sont buggés. Il faut faire défiler la page jusqu'à l'emplacement voulu.
Beuvez, beuvez, mais bourré... Jamais !
Hors ligne
#5 Le 26/07/2006, à 13:33
- zedtux
Re : [Anjuta] Undefined reference to `g_thread_init' au linkage...
Oui oui, moi aussi ca marche quand je compile à la main...
C'est con, je me sert que de lui pour coder...
RECOLLER VOS FICHIERS XTM AVEC TUXTREMSPLIT !!
Adhérant April numéro 4985 [Rejoindre l'April moi aussi !].
Hors ligne
#6 Le 02/08/2006, à 09:17
- lost-in-the-shell
Re : [Anjuta] Undefined reference to `g_thread_init' au linkage...
Conseil : apprends à utiliser les Makefile .
Linux user #401253 - Ubuntu user #3023 .
Nick sur IRC : naji.
Pensez à adhérer au Comité de lutte contre le SMS.
Hors ligne