🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #7114

Problemas al linkar librerias de POSIX threads

#7114
From: Angel Ivan Castell Rovira
Date: Mon, 31 Mar 2003 09:45
78 lines
3237 bytes
Salu2 a to2.

Tengo problemas para compilar programas con la libreria de POSIX threads.
Un programita chorra como este:


/*
 * ej.thread.c
 */

#include <pthread.h>
#include <stdio.h>


void *print_message(void *ptr){

  printf ("%s ",(char*)ptr);
  return(0);

} /* print_message */


int main(){

  pthread_t thread1,thread2;
  char *message1="Hello";
  char *message2="World";

  pthread_create(&thread1, NULL, print_message, &message1);
  pthread_create(&thread2, NULL, print_message, &message2);

  return(0);
  exit(0);

} /* main */


El programa anterior lo compilo de la siguiente forma:

	$ gcc ej.thread.c

y este es el error que obtengo por la pantalla

/tmp/ccegkcVY.o: In function `main':
/tmp/ccegkcVY.o(.text+0x54): undefined reference to `pthread_create'
/tmp/ccegkcVY.o(.text+0x6b): undefined reference to `pthread_create'
collect2: ld returned 1 exit status

Como veis se trata de problemas con el linkador. El programa se compila bien,
de hecho, si solo genero el fichero objeto sin llegar a generar el ejecutable,
el fichero ej.thread.o se genera sin ningun problema haciendo esto:

	$ gcc -c ej.thread.c -> genera ej.thread.o

No se lo que ocurre. Esta claro que no es un problema de sintaxis del C. 
?Alguien me puede hechar un cable?? He editado el fichero

	/usr/include/pthread.h 
	
y alli aparece definida la funci�n pthread_create, por
lo que lo �nico que se me ha ocurrido es incluir la trayectoria completa en 
el #include del programa en C y volverlo a compilar, pero sigue 
saliendo el mismo mensaje de error. 

�Tiene algo que ver el link que se usa en /usr/src/linux para apuntar 
al kernel compilado? �Donde esta la implementaci�n de la cabecera 
pthread.h? Porque yo en mi disco duro no he encontrado ningun fichero 
pthread.c (locate pthread.c no encuentra nada). 


�Existe algun manual del linkador de C que explique bien todo el proceso 
para linkar librerias estaticas, dinamicas, generar objetos, 
generar ejecutables y demas? Voy a hechar un vistazo por GOOGLE, pero 
si alguien tiene experiencia en esto, seria de agradecer. 


Muchas gracias a todos.
Technical Details
Message-ID: <b692oc$kjd$1@sofora01.uji.es>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!bloom-beacon.mit.edu!news.rediris.es!news.uv.es!sofora01.uji.es!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: f86c8,13e054c8d212500c,start
X-Google-Attributes: gidf86c8,public
X-Google-ArrivalTime: 2003-03-31 02:58:11 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!bloom-beacon.mit.edu!news.rediris.es!news.uv.es!sofora01.uji.es!not-for-mail
From: Angel Ivan Castell Rovira <al004140@alumail.uji.es>
Newsgroups: es.comp.os.linux.programacion
Subject: Problemas al linkar librerias de POSIX threads
Date: Mon, 31 Mar 2003 09:45:48 +0000 (UTC)
Organization: Universitat Jaume I
Lines: 78
Sender: Angel Ivan Castell Rovira <al004140@anubis.uji.es>
Message-ID: <b692oc$kjd$1@sofora01.uji.es>
NNTP-Posting-Host: anubis.uji.es
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-2
Content-Transfer-Encoding: 8bit
X-Trace: sofora01.uji.es 1049103948 21101 150.128.40.100 (31 Mar 2003 09:45:48 GMT)
X-Complaints-To: news@marti.uji.es
NNTP-Posting-Date: Mon, 31 Mar 2003 09:45:48 +0000 (UTC)
User-Agent: tin/1.4.5-20010409 ("One More Nightmare") (UNIX) (AIX/4-3)