windows 系统下找不到kernel32.lib
和windows.h
等问题
因为项目中一个硬件驱动只支持windows7,所以找了一个硬盘重装系统(window 7 64位官方纯净版)。装完之后又安装了VS2013,新建项目直接报错,找不到kernel32.lib
,打不开windows.h
等error,我感觉莫名奇妙,之前出现这种情况是因为装了多个版本VS才会出现,为什么我新系统也出现,真的很奇怪。因为需要用到VS+QT,所有紧接着安装了QT5.8,装好QT之后发现他喵的QT也出错,找不到shell32.lib
。我用了很久的windows10,也用了一段Ubuntu,都没有遇到过安装软件之后,系统库都配置不好的情况。为了彻底理解windows上的系统库和环境变量的工作原理,查了很多的资料。最后终于解决了问题,并加深了对VS和配置的理解。
首先了解一下Microsoft Windows SDK
:
维基百科 介绍了Windows SDK版本变迁和主要特性,主要理解不同操作系统对应不同版本的SDK,也就是为什么后面我们要引用C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib
这个路径,这里面的v7.1A
代表了windows 7的最后一个版本
系统环境变量:
环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。例如Windows和DOS操作系统中的path环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找。用户通过设置环境变量,来更好的运行进程。
“Path”,增加新的目录时注意要使用英文分号将路径隔开。
添加新的变量,在Path中引用格式为%<变量名>%
cmd下的环境变量设置
所有的在cmd命令行下对环境变量的修改只对当前窗口有效,不是永久性的修改。也就是说当关闭此cmd命令行窗口后,将不再起作用。永久性修改环境变量的方法有两种:一种是直接修改注册表(此种方法目前没试验过),另一种是通过我的电脑-〉属性-〉高级,来设置系统的环境变量
Visual Studio配置
博客详解
在系统环境变量中没有PATH、LIB LIBPATH INCLUDE的条件下,那么Visual Studio将自动转至系统环境变量path逐一搜索该变量中所包含的目录,以上就是VS在没有任何辅助工具的条件下会进行的一系列的搜索目录处理。
Qt creator无法打开文件 “kernel32.lib" or"shell32.lib"等等问题
于此问题同时出现的应该是Visual studio项目找不到“kernel32.lib",都是因为系统环境变量中没有包含
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\include
本人出现此问题时的系统情况为:windows 7 x64,VS2013,Qt5
参考链接
原因是qt使用的本地编译连接工具cl.exe(MSVC编译器)找不到windows sdk的lib文件导致
点击Qt creator左侧导航栏中 项目 配置管理,找到构建环境,点击详情,发现qt使用了系统环境变量。
找到lib变量,将C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib
路径添加到lib变量中,再次运行,错误消失。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)