最近安装了Visual Studio 2022,想试下opengl,首先是用cmake尝试编译,结果编译不过,一直报错 LINK : fatal error LNK1104: 无法打开文件“ucrtd.lib”
然后我新建了一个工程,导入了glfw的包打算编译一下,结果好家伙,一编译一大堆报错,全是什么 E1696 无法打开 源 文件 crtdbg.h之类的
网上说什么重装windows 10 sdk的,试了完全不起作用。我又试下装了VS2019,这个是没有问题的,开始怀疑是系统依赖路径的锅,于是我打开VS2022的include和lib的目录看了下
把默认的配置拷贝了出来,这是包含目录的配置
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.30.30705\include
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.30.30705\atlmfc\include
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\VS\include
C:\Program Files\Windows Kits\10\Include\10.0.19041.0\ucrt
C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um
C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared
C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\winrt
C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\cppwinrt
C:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\Include\um
这是库目录的配置
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.30.30705\lib\x64
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.30.30705\atlmfc\lib\x64
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\VS\lib\x64
C:\Program Files\Windows Kits\10\lib\10.0.19041.0\ucrt\x64
C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64
C:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\lib\um\x64
结果发现这里C:\Program Files\Windows Kits\10\Include\10.0.19041.0\ucrt和C:\Program Files\Windows Kits\10\lib\10.0.19041.0\ucrt\x64两个目录我本地压根不存在,这就找到原因了,ucrt这个东西lib和include目录都不存在,到哪里去了呢?我按照其他几个目录结构去找,结果找到了两个目录
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.19041.0\ucrt
C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt
注意区分,这里其实就是目录多了个x86(以及lib大小写),这两个才是真正的安装依赖路径,至于默认的路径为什么是前面那个就不清楚了。可能软件安装本身有问题,也可能是我机器的原因,总之是个比较坑的点。
那么问题就很好解决了,把下面这两个目录文件分别拷贝到上面两个目录就行了(这样更方便一点,因为VS改默认依赖路径很麻烦),再精确一点就是:
复制include目录
mkdir C:\Program Files\Windows Kits\10\Include\10.0.19041.0\ucrt
copy C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt\* C:\Program Files\Windows Kits\10\Include\10.0.19041.0\ucrt
复制lib目录
mkdir C:\Program Files\Windows Kits\10\lib\10.0.19041.0\ucrt
copy C:\Program Files (x86)\Windows Kits\10\Lib\10.0.19041.0\ucrt\* C:\Program Files\Windows Kits\10\lib\10.0.19041.0\ucrt
这不是可用的脚本,只是大概表达这个意思,先去创建好两个目录,然后把文件复制过去就好了。亲测有效
文章来源:https://www.toymoban.com/news/detail-607868.html
文章来源地址https://www.toymoban.com/news/detail-607868.html
到了这里,关于Visual Studio 2022 include和lib路径问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!