Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: DrKillador en 1 Julio 2013, 21:18 PM

Título: Practica de threads en C con Codeblocks
Publicado por: DrKillador en 1 Julio 2013, 21:18 PM
Hi amigos,

Estoy practicando el uso de threads en ANSI C, en Windows con Codeblocks, y me da un error al compilar que no logro arreglar.

Tengo la siguiente funcion que me abre una calculadora (funciona perfectamente):


#include <pthread.h>
void *b()
{
    exec("calc");
    return NULL;
}


Y he hecho ahora esta otra funcion para lanzar la calculadora desde una nueva hebra, para que el programa no se pare:


void a()
{
    pthread_t h1;
    pthread_create(&h1, NULL, b(),NULL);
}


El problema es que al compilar me da el siguiente error en la instrucción "pthread_t h1", porque creo que no encuentra el tipo de dato pthread_t:

Código (html4strict) [Seleccionar]
main.c|15|undefined reference to `_imp__pthread_create'|

He leído por internet que tengo que añadir el flag -l al compilar, ya que estoy utilizando GCC como compilador en el Codeblocks, pero sigo con el problema...

¿Alguien sabria ayudarme?

Grax!!!
Título: Re: Practica de threads en C con Codeblocks
Publicado por: avesudra en 1 Julio 2013, 22:48 PM
Hola DrKillador , según tengo entendido y aunque nunca la usado, pthread  no está soportada nativamente por Windows  por lo que tendrás que compilar enlazando la siguiente librería Pthreads-w32 (http://sourceware.org/pthreads-win32/).

PD: No tengo mucha idea del tema pero parece ser que es eso.

¡Un saludo!
Título: Re: Practica de threads en C con Codeblocks
Publicado por: amchacon en 1 Julio 2013, 22:54 PM
Puedes también llamar a las API de windows:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms682453(v=vs.85).aspx
Título: Re: Practica de threads en C con Codeblocks
Publicado por: DrKillador en 2 Julio 2013, 20:05 PM
Gracias! lo solucioné usando CreateThread de la WinAPI.

Saludos!