在Borland多线程

时间:2014-10-10 13:10:45

标签: multithreading include pthreads header-files borland-c++

我在Borland c ++ 5.02中编写c ++编程。我试图运行此代码:

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

#define NUM 5

main()
{
  pthread_t t1, t2; /* two threads */

  void *print_msg(void *);

  pthread_create(&t1, NULL, print_msg, (void *)"hello");
  pthread_create(&t2, NULL, print_msg, (void *)"world\n");
  pthread_join(t1, NULL);
  pthread_join(t2, NULL);
}

但是我收到了这个错误:

信息:编译C:\ BC5 \ BIN \ noname00.cpp

错误:noname00.cpp(2,2):无法打开包含文件&#39; PTHREAD.H&#39;

错误:noname00.cpp(8,15):未定义的符号&#39; pthread_t&#39;

错误:noname00.cpp(8,15):语句丢失;

错误:noname00.cpp(12,18):调用未定义的函数&#39; pthread_create&#39;

我突出显示了由'PTHREAD.H'引起的主要错误。 我检查了此文件的include文件夹。它不存在。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

Borland的C ++工具链不包含pthreads库,也不包含Windows SDK。您需要使用本机Win32线程API或获取Windows的第三方pthreads实现。

一些选项包括:

我不知道这些东西对Borland C ++ 5.x有多好用。

另一种方法是使用包含pthreads实现的工具链,例如TDM的MinGW工具链:

答案 1 :(得分:0)

您的问题是#include <pthread.h>

  • 您需要复制所有与pthread相关的文件( .h, .c, .cpp, .hpp, .lib,。 OBJ)
  • 进入编译器包含文件夹
  • 或在项目/编译器设置中添加包含它的路径
  • 或将其本地复制到您的项目中,并将#include <pthread.h>更改为#include "pthread.h"

因此编译器找不到pthread.h头

  • 所以编译器端没有数据类型(如pthread_t)
  • 因此其余的错误......