在VS2022中编译之前的项目遇到的错误,记录一下。
一、error MSB8036: 找不到 Windows SDK 版本8.1。
下载链接:SDK版本
直接下载Windows SDK 8.1版本放在
C:\ProgramFiles(x86)\Common\Files\Microsoft\ExtensionManager\Extensions\Microsoft\Windows Kits 目录下(如果VS是默认的安装地址)
二、VS2022中 无法找到 Visual Studio 2015 的生成工具(平台工具集 =“v140”)
1、打开Visual Studio Installer,点击修改
2、选择“单个组件”,输入MSVC,选择右边“ MSVC V140 VS2015 C++生成工具(v140)”
(这种做法会导致软件占用空间多了几个G,毕竟MSVC v140占用空间较大)
三、fatal error C1083: 无法打开包括文件: “pthread.h”
网上搜索发现有在“管理NuGet程序包”中搜索pthread下载第一个的,我搜索后没有发现pthread,所以在官网下载配置。
VS2022中安装配置pthread多线程
1、选择“pthreads-w32-2-9-1-release”
解压后得到三个文件夹,一般只用到Pre-built.1文件夹。
2、在项目的解决方案中,右键项目,选择属性->VC++目录->常规,在 包含目录和库目录 中分别添加Pre-built.1文件夹中的 include目录和lib目录
然后在 链接器->输入->附加依赖项 中填入 pthreadVC1.lib
3、如果代码运行后有 提示timespec";" struct类型重定义 的错误,解决方法:
在源程序中添加头文件 #include <pthread.h> ,按住ctrl鼠标点击<pthread.h>,会跳到pthread.h头文件,在此文件中加入一行代码:
#define HAVE_STRUCT_TIMESPEC