You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS2022编译项目遇LNK2019错误:未解析外部符号CreateDXGIFactory

解决LNK2019:CreateDXGIFactory外部符号未解析问题

编译VS2022项目时出现LNK2019错误,提示main函数中引用的外部符号CreateDXGIFactory未解析,即便已包含Win10 SDK且能获取内联提示,核心原因是未链接DXGI的库文件。

解决方案

CreateDXGIFactory的实现位于dxgi.lib中,必须显式将该库引入项目,有两种方式:

  • 代码内添加编译指令:在头文件包含部分添加库链接指令,修改后的代码如下:
#include <iostream>

#include <dxgi.h>
#include <dxgi1_2.h>
#include <dxgi1_3.h>
#include <dxgi1_4.h>
#include <dxgi1_5.h>
#include <dxgi1_6.h>
#include <dxgicommon.h>
#include <dxgidebug.h>
#include <dxgiformat.h>
#pragma comment(lib, "dxgi.lib") // 添加这一行链接dxgi库

int main()
{
   UINT i = 0, j = 0, k=0;
    IDXGIFactory* pFactory = nullptr;
    IDXGIAdapter* pAdapter;
    IDXGIOutput* pOutput;
    if (CreateDXGIFactory(__uuidof(IDXGIFactory), (void**)(&pFactory)) == S_OK)
    {
        while (pFactory->EnumAdapters(i, &pAdapter) != DXGI_ERROR_NOT_FOUND)
        {
            while (pAdapter->EnumOutputs(j, &pOutput) != DXGI_ERROR_NOT_FOUND)
            {
                ++j,k;
                pOutput->Release();
            }
            j = 0;
            ++i;
            pAdapter->Release();
        }
        std::cout << j << std::endl;
        pFactory->Release();
    }
    else  
    {
        std::cout << "Err creating dxgi factory" << std::endl;
    }
    return 0;
}
  • 通过VS项目设置添加:右键项目 → 属性 → 配置属性 → 链接器 → 输入 → 附加依赖项,在输入框中添加dxgi.lib,点击确定保存设置后重新编译。

说明

头文件仅提供CreateDXGIFactory的函数声明,实际函数实现存在于dxgi.lib库文件中。编译器在编译阶段能通过头文件识别函数,但链接阶段需要找到对应库的实现才能完成最终的可执行文件生成,因此必须显式链接该库。

内容的提问来源于stack exchange,提问作者luckyGryfindor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 02:27:27