概述
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 SDKsWindowsv7.1ALib
这个路径,这里面的v7.1A
代表了windows 7的最后一个版本
系统环境变量:
环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。例如Windows和DOS操作系统中的path环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找。用户通过设置环境变量,来更好的运行进程。
“Path”,增加新的目录时注意要使用英文分号将路径隔开。
添加新的变量,在Path中引用格式为%<变量名>%
cmd下的环境变量设置
所有的在cmd命令行下对环境变量的修改只对当前窗口有效,不是永久性的修改。也就是说当关闭此cmd命令行窗口后,将不再起作用。永久性修改环境变量的方法有两种:一种是直接修改注册表(此种方法目前没试验过),另一种是通过我的电脑-〉属性-〉高级,来设置系统的环境变量
Visual Studio配置
博客详解
-
可执行目录:可执行目录指向包含可执行文件的目录,通常是名字叫bin的文件夹,存放了.exe、.dll文件,对应这环境变量中的PATH
-
包含文件:包含文件对应了系统环境的INCLUDE变量
-
引用目录:引用文件目录则对应LIBPATH目录
-
库文件目录:库文件目录对应LIB环境变量
在系统环境变量中没有PATH、LIB LIBPATH INCLUDE的条件下,那么Visual Studio将自动转至系统环境变量path逐一搜索该变量中所包含的目录,以上就是VS在没有任何辅助工具的条件下会进行的一系列的搜索目录处理。
Qt creator无法打开文件 “kernel32.lib" or"shell32.lib"等等问题
于此问题同时出现的应该是Visual studio项目找不到“kernel32.lib",都是因为系统环境变量中没有包含
C:Program Files (x86)Microsoft SDKsWindowsv7.1ALib
C:Program Files (x86)Microsoft SDKsWindowsv7.1Ainclude
本人出现此问题时的系统情况为:windows 7 x64,VS2013,Qt5
参考链接
原因是qt使用的本地编译连接工具cl.exe(MSVC编译器)找不到windows sdk的lib文件导致
点击Qt creator左侧导航栏中 项目 配置管理,找到构建环境,点击详情,发现qt使用了系统环境变量。
找到lib变量,将C:Program Files (x86)Microsoft SDKsWindowsv7.1ALib
路径添加到lib变量中,再次运行,错误消失。
最后
以上就是细心钥匙为你收集整理的windows 系统下找不到kernel32.lib和windows.h等问题的全部内容,希望文章能够帮你解决windows 系统下找不到kernel32.lib和windows.h等问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复