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

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

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

vs2019配置pthread库,对‘pthread_create’未定义的引用。_第1张图片

 

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

vs2019配置pthread库,对‘pthread_create’未定义的引用。_第2张图片

 

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

vs2019配置pthread库,对‘pthread_create’未定义的引用。_第3张图片
第二步:

 vs2019配置pthread库,对‘pthread_create’未定义的引用。_第4张图片

 vs2019配置pthread库,对‘pthread_create’未定义的引用。_第5张图片

 

报错无法解析的外部符号 __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上运行时估计不会加上这命令。

vs2019配置pthread库,对‘pthread_create’未定义的引用。_第6张图片
解决:vs创建Linux项目使用pthread外部库配置
在Linux上需要指定-pthread,这是设置:

 vs2019配置pthread库,对‘pthread_create’未定义的引用。_第7张图片

 


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

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

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

你可能感兴趣的:(windows,linux,运维)