我是靠谱客的博主 细心钥匙,最近开发中收集的这篇文章主要介绍windows 系统下找不到kernel32.lib和windows.h等问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

windows 系统下找不到kernel32.libwindows.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等问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(67)

评论列表共有 0 条评论

立即
投稿
返回
顶部