PThread i VS2010 – Jak skompilować swój pierwszy program

Są to moje pierwsze zabawy z wątkami, więc na początek opiszę jak uruchomić aplikację z wykorzystaniem biblioteki PThread. Aby uruchomić aplikację w VS2010, potrzebujemy trzech rodzai plików: nagłówkowe (.h), bibliotekę dynamiczną (.dll) i statyczną (.lib). Skąd wziąć te pliki? …z internetu, a dla leniwych dokładnie stąd. Ja korzystam z wersji: pthreads-dll-2005-03-08. Z tamtą należy pobrać wszystkie pliki z katalogu include i dwa pliki z katalogu lib: pthreadVC1.lib i pthreadVC1.dll.

Pliki include należy dodać do VS w następujący sposób:

Project->Properties…->Configurations Properties->C/C++->General->Additional Include Directoris-> (link do folderu include)

Bibliotekę statyczną dołączamy w następujący sposób: pthreadVC1.lib

Project->Properties…->Configurations Properties->Linker->General->Additional Include Directoris-> (link do folderu lib)

Project->Properties…->Configurations Properties->Linker->Input->Additional Dependencies-> (link do folderu lib)

Teraz aplikacja uruchomi się ale będzie jej brakować biblioteki dynamicznej, którą należy wkleić w jedno z dwóch miejsc:

  • 1) The same directory your .exe file is located in
    OR
  • 2) C:\Windows\system32 (if your OS is a 32bit windows version)
    OR
  • 2) C:\Windows\SysWOW64 (if your OS is a 64bit windows version)

Teraz już możemy skompilować naszą pierwszą aplikację z wątkami wykorzystującą bibliotekę PThread. Oto przykladowy kod:

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

const int NUM_THREADS=5;

using std::cout;

void *PrintHello(void *threadid)
{
long tid;
tid = (long)threadid;
cout << “Hello World! It’s me, thread ” << tid;
pthread_exit(NULL);
return 0;
}

int main (int argc, char *argv[])
{
pthread_t threads[NUM_THREADS];
int rc;
long t;
for(t=0; t<NUM_THREADS; t++){
printf(“In main: creating thread %ld\n”, t);
rc = pthread_create(&threads[t], NULL, PrintHello, (void *)t);
if (rc){
printf(“ERROR; return code from pthread_create() is %d\n”, rc);
}
}
pthread_exit(NULL);
char e;
std::cin >> e;
}

One response to “PThread i VS2010 – Jak skompilować swój pierwszy program

  1. Pawel wkleiłam Twój program i zrobiłam wszystko zgodnie z instrukcją, wydaje mi sie że coś mogło pójść nie tak z wklejeniem biblioteki dynamicznej, cały czas podkreśla mi wszystko z pthreadami i wyskakuje komunikat: Unable to start program ‘C:\Documents and Settings\martinez\my documents\visual studio 2010\Projects\Hello\Debug\Hello.exe’. The system cannot find the file specified. Miłych wakacji tak btw:D

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s