2012-10-18 35 views
1

這是一個簡單的代碼,我已經在eclipse中的Windows 7操作系統上學習了多線程編程。未檢測到多線程庫

pthread_mutex_t double_release_001_glb_mutex_; 
pthread_mutex_t * double_release_001_glb_mutex = & double_release_001_glb_mutex_; 

void double_release_001_glb_mutex_lock() {} 
void double_release_001_glb_mutex_unlock() {} 

int double_release_001_glb_data = 0; 

void * double_release_001_tsk_001 (void * pram) 
{ 

    pthread_mutex_lock (double_release_001_glb_mutex); 
    double_release_001_glb_data = (double_release_001_glb_data% 100) + 1; 

    pthread_mutex_unlock (double_release_001_glb_mutex); 
    return NULL; 
} 

void double_release_001() 
{ 
    pthread_t tid1; 
    pthread_mutex_init (double_release_001_glb_mutex, NULL); 
    pthread_create (& tid1, NULL, double_release_001_tsk_001, NULL); 
    pthread_join (tid1, NULL); 
    pthread_mutex_destroy (double_release_001_glb_mutex); 
} 

void double_release_001_tskentry_001() 
{ 
    while (1) 
    { 
     if (rand()) 
     { 
      double_release_001_tsk_001 (NULL); 
     } 
    } 
} 

但是當我建立它,我得到一個錯誤說

Description Resource Path Location Type 
undefined reference to `_imp__pthread_create' 
undefined reference to `_imp__pthread_create'  
undefined reference to `_imp__pthread_create' 
undefined reference to `_imp__pthread_create' 

我已經包括pthread.h。有人能幫助我嗎?

+0

鏈接器說它無法找到'pthread_create'。對於gcc,你可以用'-lpthread' ...鏈接它,相當於windows版本的pthreads。 –

+0

您是否明確指定了鏈接器中的庫? – SparKot

+0

C/C++ - >設置 - >工具設置 - >(MinGW)鏈接器 - >庫 – SparKot

回答

0

將此選項添加到鏈接器:-lpthread