在学习c++过程中,c++多线程一般需要用到pthread多线程库,这是一般是假设我们使用的是 Linux 操作系统,编译工具是gcc的情况下,但是大多数情况咱们开发的操作系统是Windows,编译工具是Visual Studio。本文章的基础环境是win10,VS 2019。
先去下载pthread库
ftp://sourceware.org/pub/pthreads-win32/pthreads-w32-2-9-1-release.zip
解压后会看到有三个文件夹
我们的测试程序来自菜鸟教程的
C++多线程教程
,创好项目后引入pthread的头文件会报找不到的错误。
去项目NuGet程序包里下载这个库
到浏览中搜索安装
安装完后运行程序会遇到第一个错误 C2011 “timespec”:“struct”类型重定义
到pthread.h头文件里,在
#if !defined( PTHREAD_H )
#define PTHREAD_H
下面加#define HAVE_STRUCT_TIMESPEC
再次运行,此时会出现两个新的错误
- 错误 LNK2019 无法解析的外部符号 __imp__pthread_create
- 错误 LNK2019 无法解析的外部符号 __imp__pthread_exit
这时需要我们回到pthread.h头文件里,任意位置上加上
#pragma comment(lib,"pthreadVC2.lib")
再运行程序报
错误 LNK1104 无法打开文件“pthreadVC2.lib”
感觉离希望越来越近了,错误说无法打开“pthreadVC2.lib”,咱们把上面下载好的Pre-built.2/lib/x86(选x86还是x64文件夹视你的编译器平台而定)里的找到pthreadVC2.lib
把pthreadVC2.lib放到程序根目录下,就是和你的代码放到同一级目录上
再运行程序,这次终于弹出黑框框了,但是会提醒我们系统里缺少pthreadVC2.dll
这时需要将dll库放入Windows系统库文件中
- 打开Pre-built.2下dll文件夹,有两个不同平台的dll,把x64下的文件放到C:\Windows\System32\下
- 把x86文件夹放到SysWOW64\下
据说之所以把x64的放32位下,x86的放64位下,是为了让64位机能运行32位的程序
最后一次运行程序,成功运行!
如何在Visual Studio中配置pthread多线程库
VS 2019配置多线程pthread库下载库文件在学习c++过程中,c++多线程一般需要用到pthread多线程库,这是一般是假设我们使用的是 Linux 操作系统,编译工具是gcc的情况下,但是大多数情况咱们开发的操作系统是Windows,编译工具是Visual Studio。本文章的基础环境是win10,VS 2019。先去下载pthread库ftp://sourceware.org/pub/pthreads-win32/pthreads-w32-2-9-1-release.zip解压后会看
pthread_attr_t attr;
pthread_attr_init(&attr);
pthread_attr_setscope(&attr, PTHREAD_SCOPE_PROCESS);
pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
pthread_create(&newThread, &attr, Function_t, NULL);
为什么会要用到pthread库?
pthread库是Linux的多线程库,通常在Windows下使用该库大多数是为了实现与Linux的跨平台兼容。
如果你为了在Windows环境下实现多线程,可以考虑Windows自带的多线程API。
当然你也可以使用宏定义的方式,区分windows与Linux环境在执行对应的多线程接口,
排除路径错误、依赖
库缺少这类低级错误,这个问题主要跟qtcreator的编译器有关,
lib文件必须是相同编译器编译获得的才能使用。尝试通过VC2017编译器导入VC2013编译的
lib文件,这肯定是行不通的。换一种方式,将
lib改为dll,这样就可以动态调用
pthread.lib文件下载,本人用于crf++安装时使用。。
pthread.lib文件下载,本人用于crf++安装时使用。。
pthread.lib文件下载,本人用于crf++安装时使用。。
pthread.lib文件下载,本人用于crf++安装时使用。。
解决这个问题的前提是下载了 pthreads-w32-2-7-0-release.exe,并按照https://blog.csdn.net/cuicui_ruirui/article/details/106782398
将lib文件夹复制到了vs的安装目录下。
1.在vs的安装目录下搜索pthreadVC2.lib
2.复制该文件到项目的源文件夹下。例如,我的项目名称是work1,想要使用pthread的是文件test.cpp,那就将这个pthreadVC2.lib放到与test.cpp同一级目录下。
1.ftp://sourceware.org/pub/p
threads-win32
到上面下载p
threads-w32-2-8-0-release.exe文件,选定文件夹后解压。
2.Pre-built.2
解压后该目录会多出三个文件夹:Pre-buil
要在Visual Studio 2019中配置pthread库的多线程支持,可以按照以下步骤进行:
1. 首先,从https://sourceforge.net/projects/pthreads4w/files/pthreads-w32/下载最新版本的pthread库,或者从百度网盘获取。
2. 将下载好的pthread库解压到一个路径下,例如C:\pthread。
3. 在Visual Studio 2019中创建一个新的控制台应用程序项目。
4. 点击“项目”菜单,选择“属性”。
5. 在属性页中,选择“VC++目录”选项卡,在“包含目录”中添加pthread.h的所在目录,例如C:\pthread\Pre-built.2\include。
6. 在“库目录”中添加pthread库的lib文件所在目录,例如C:\pthread\Pre-built.2\lib\x64和C:\pthread\Pre-built.2\lib\x86。
7. 在“链接器”选项卡中,选择“输入”选项卡,在“附加依赖项”中加入pthreadVC2.lib和pthreadVCE2.lib。
8. 在代码中添加头文件#include <pthread.h>。
现在,你可以编写多线程代码并使用pthread库了。例如,你可以使用以下代码来创建一个线程并打印一条消息:
#include <iostream>
#include <pthread.h>
using namespace std;
void* func(void* arg) {
cout << "Hello from thread!" << endl;
pthread_exit(NULL);
int main() {
pthread_t thread;
int rc = pthread_create(&thread, NULL, func, NULL);
if (rc) {
cout << "Error: unable to create thread," << rc << endl;
return -1;
pthread_join(thread, NULL);
return 0;
这样,你就成功配置了pthread库的多线程支持。\[1\]\[2\]\[3\]
#### 引用[.reference_title]
- *1* *3* [vs2019 C++配置多线程pthread库](https://blog.csdn.net/weixin_44770969/article/details/129389356)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [VS 2019配置多线程pthread库 - 及自我解析](https://blog.csdn.net/wu_zhiyuan/article/details/116306158)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
SpringCloud Alibaba 整合nacos 报错:create config service error!properties=NacosConfigProperties
15875