C++ - VS2019配置pthread线程库

1. 说明

在VS里用MS编译器不能直接调用pthread库,需要先自行下载

下载链接1:http://sourceware.org/pub/pthreads-win32/pthreads-w32-2-9-1-release.zip

下载链接2:https://sourceware.org/pub/pthreads-win32/

解压后用得到的只有Pre-built.2文件夹下的文件。

2. 配置

如下图分别配置三大项:

  • 包含目录-->...pthreads-w32-2-9-1-release\Pre-built.2\include
  • 库目录-->...pthreads-w32-2-9-1-release\Pre-built.2\lib\x86
  • 附加依赖项-->pthreadVC2.lib

 

3. 解决报错

(1) 如果代码运行报错:“timespec”;”struct”类型重定义。解决方法:在pthread.h在第35行加入如下代码:

 
#define HAVE_STRUCT_TIMESPEC

或者在项目属性->CC++->预处理器->预处理器定义添加HAVE_STRUCT_TIMESPEC

 

(2) 如果代码运行报错:找不到pthreadVC2.dll。解决方法:将pthreadVC2.dll拷贝到项目的Debug目录下

或者 打开Pre-built.2文件夹,有两个不同平台的pthreadVC2.dll,把x64下的文件放到C:\Windows\System32\下, 把x86文件夹放到C:\Windows\SysWOW64\下。

 

4. 测试代码

 
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>//使用多线程时需要添加<pthread.h>这个头文件
#include <Windows.h>

void* pFunc(void* arg)
{
	int m = 1;
	while (1) 
	{
		printf("线程 --- m: %d\n", m++);
		Sleep(1000);
	}
}


int main() 
{
	int n = 1;
	//创建一个线程
	pthread_t pid;
	pthread_create(&pid, NULL, pFunc, NULL);
	while (1) 
	{
		printf("主函数 --- n: %d\n", n++);
		Sleep(1000);
	}
	return 0;
}

运行结果:

 

posted @   [BORUTO]  阅读(345)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
历史上的今天:
2022-07-30 Qt - 设置QWidget透明度方法
点击右上角即可分享
微信分享提示