【问题标题】:Fatal error LNK1104: cannot open file 'gdi32.lib'致命错误 LNK1104:无法打开文件“gdi32.lib”
【发布时间】:2016-02-09 13:03:15
【问题描述】:

每次我尝试运行我的代码时都会收到此错误。我已经尝试了一切,安装了 SDK,但我仍然遇到同样的错误。

1>------ Build started: Project: ConsoleApplication6, Configuration: Debug Win32 ------
1>LINK : fatal error LNK1104: cannot open file 'gdi32.lib'
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

我使用的是 Windows 7 和 Visual Studio 2012。

【问题讨论】:

  • 您的安装很糟糕。您可以检查各种目录的项目属性页,特别是库目录,然后验证路径是否有效。

标签: c++ visual-studio visual-studio-2012


【解决方案1】:

如果有人在 Visual Studio 2017 上遇到此问题,则这是 Windows 10 Creators Update 的问题。

解决方法是在 Visual Studio 安装程序的“使用 C++ 进行桌面开发”工作负载下选择“Windows 10 SDK (10.0.15063.0) for Desktop C++ x86 and x64”。

https://www.visualstudio.com/en-us/news/releasenotes/vs2017-relnotes#KINativeDesktopWorkload

【讨论】:

  • 对于任何想知道的人,是的,如果您在 Win 10 创建者更新后没有发现 VS2017 生成的编译器错误,这是正确的解决方案。感谢您的回答。
  • 是的,这个解决方案在 VS2017 的 Win 10 创作者更新中对我有用
  • 另请注意,它为每个架构都有一个组件 - “Windows SDK for Desktop C++ [arch] Apps”。我只安装了 x86,无法弄清楚为什么 32 位版本有效,但 64 位版本给出了这个错误。安装 amd64 组件修复了它。
  • 我从下面的链接下载了 Windows 10 SDK (10.0.15063.0),因为我的 Visual Studio 安装程序没有通过 10.0.15063.0 列出。 developer.microsoft.com/en-us/windows/downloads/windows-10-sdk
【解决方案2】:

在 Visual Studio 2017(社区版)中,我通过将项目属性中的 Windows SDK 版本从 10.0.10586.0 切换到 10.0.16299.0(这是我在我的机器上安装的版本)解决了这个问题。

方法如下:

  1. 在 Visual Studio 中,转到项目属性:

  1. 选择已安装的 SDK 版本:

参考:the developer community for VS

【讨论】:

  • 尽管来自 (user7880029) 的回答是正确的。我更喜欢这个答案,因为它显示了需要做什么。否则,我需要看看如何找到选择 Windows SDK 的位置。感谢您为我节省了另一个 Google 搜索。
【解决方案3】:

对于那些在 Windows 10 上使用 Visual Studio 2015 的人来说,可能是因为安装被破坏了。如果是这样,只需启动安装程序进行“修复”即可。

最好也安装 Visual Studia 2015 Update 1 RC。

它对我有用...

【讨论】:

  • 我修复了 Visual Studio 2017 安装,但它不起作用。
【解决方案4】:

我使用的是 Windows 8.1 Visual Studio 2017 Professional,在将项目属性 Windows SDK 版本切换为 8.1、构建,然后将其切换回 10.0.16299.0 后,我让它工作了。

我正在尝试编译 CUDA 示例项目。

成功了,别问我为什么。也许这与我拥有 Visual Studio Community 2017 然后卸载它以安装专业版有关。

【讨论】:

    【解决方案5】:

    据我了解,您尚未定义库的路径。

    右击项目 --> 属性

    在配置属性下的“链接器”选项卡上,选择“附加库目录”上的“常规”。选择gdi32.lib的路径:

    然后转到输入选项卡(在常规选项卡下方)。

    双击或选择编辑添加gdi32.lib:

    最后添加你的“gdi32.lib”并点击OK

    顺便说一句,在 Visual Studio 2013 终极版中,默认情况下它有 gdi32.lib。

    希望它能解决你的问题。

    【讨论】:

    • Visual Studio 的所有版本,除了那些安装被破坏的版本,在“VC++ 目录”页面中正确设置了默认库目录,并且“gdi32.lib”和相关的出现在'链接器->输入->附加依赖'通过从父继承。这个答案可能会一次性解决这个特定问题,但还有一个更大的潜在问题尚未通过这种方式解决。
    【解决方案6】:

    如果您从另一台计算机上移动了代码,则它可能在您的平台上使用了错误的 SDK。检查项目属性 → 常规Windows SDK 版本 并将其设置为列表中显示的内容。

    【讨论】:

      【解决方案7】:

      要解决这个问题,您需要找到一个包含 gdi32.lib 文件的文件夹。

      对于我的系统,我在 C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\um\x86 中找到了它。

      只需将其添加到项目的属性表中即可。如其他帖子中所述,菜单 ProjectProperties 然后是 VC++ 目录。在顶部添加路径。

      【讨论】:

      • 究竟应该添加什么? gdi32.lib的完整路径?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-26
      • 1970-01-01
      • 2021-11-11
      • 1970-01-01
      • 1970-01-01
      • 2017-11-04
      • 2011-02-22
      相关资源
      最近更新 更多