vs2019配置pthread库,对‘pthread_create’未定义的引用。

Windows端使用pthread库配置方法
1:下载pthread库源码 https://sourceware.org/pthreads-win32/

下载后解压出来的目录为:

在这里插入图片描述

 

2:把Pre-built.2文件夹中的include和li文件夹复制到你的项目目录下。

在这里插入图片描述

 

3:vs设置添加头文件和lib文件路径
第一步:

在这里插入图片描述
第二步:

 在这里插入图片描述

 

 

报错无法解析的外部符号 __imp__pthread_create时,最前面加上一行:#pragma comment(lib, “pthreadVC2.lib”) ,解决。


OK,大功告成。

vs创建Linux项目使用pthread不行
用vs创建的Linux项目用pthread库是不行的,编译能成功可是不能运行,报错对‘pthread_create’未定义的引用。
我觉得应该是编译命令的问题,Linux编译pthread的命令为:g++ 001.cpp -lpthread -o 001.o 。多了一个 “-lpthread” 在vs上运行时估计不会加上这命令。


解决:vs创建Linux项目使用pthread外部库配置
在Linux上需要指定-pthread,这是设置:

 在这里插入图片描述

 


注意:不需要加 -l ,默认是有加 -l 的。

cmake配置pthread外部库
加上下面这句试一试:

//CMAKE_CXX_FLAGS:这是一个 CMake 环境变量。它的初始值取自调用进程环境。
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -o3 -pthread ")
 

【源码免费下载链接】:https://renmaiwang.cn/s/q6fg8 在计算机编程领域,多线程技术通过支持多任务并行运行显著提升了系统的资源利用率。其中,`pthread`作为标准化的多线程编程接口,在UNIX和类UNIX系统中被广泛采用。尽管其最初设计目标是为满足POSIX标准的操作系统环境提供支持,但随着跨平台开发需求的增长,`pthread`逐渐被应用于非POSIX系统如Windows。在Windows环境下,虽然原生API(如CreateThread和ExitThread)提供了线程创建与管理功能,但开发者往往更倾向于使用`pthread`因为它为多线程编程提供了与UNIX系统相似的统一模型,从而简化了跨平台代码的迁移过程。目前广泛使用的如`libpthread-win32`等开源项目均基于此实现了大部分`pthread`功能。本指南主要介绍以下关键知识点:1. 线程创建:通过`pthread_create()`函数可创建新线程,并返回相应的线程标识符;2. 线程同步机制包括互斥量(Mutex)的初始化与管理、锁定与解锁操作,以及条件变量(Condition Variable)的相关功能;3. 线程控制功能如退出、等待和分离操作的具体实现方式;4. 高级特性如线程属性设置及调度参数调整方法;5. 获取当前线程信息的方法。需要注意的是,在Windows环境下使用`pthread`可能会遇到一些移植挑战,例如对信号量的实现差异可能需要额外处理。此外,由于其在某些操作系统上的优化不足,性能表现可能存在差异。然而,基于统一编程模型的`pthread`仍因其降低跨平台开发成本的优势而在Windows环境中备受欢迎。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值