【问题标题】:Multithreading libraries not detected未检测到多线程库
【发布时间】:2012-10-18 19:53:54
【问题描述】:

这是我编写的一个简单代码,用于在 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。有人可以帮我看看吗?

【问题讨论】:

  • 链接器说它找不到pthread_create。对于 gcc,您将其与 -lpthread.. 链接它与 Windows 版本的 pthreads 等效。
  • 您是否明确指定链接器中的库?
  • C/C++ -> 设置 -> 工具设置 -> (MinGW)Linker -> 库

标签: c windows multithreading mingw posix


【解决方案1】:

将此选项添加到链接器:-lpthread

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-11
    • 1970-01-01
    • 2011-08-02
    • 2021-07-17
    • 2010-11-01
    相关资源
    最近更新 更多