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

调用windows.h的SetPixel函数编译出现链接错误如何解决

问题分析与解决方案

错误原因

  • 第一次编译的undefined reference to '__imp_SetPixel'报错:SetPixel属于Windows GDI图形组件的导出函数,默认不会被编译器链接,需要手动指定链接对应的系统库。
  • 第二次编译的ld.exe||cannot find -l-lgdi32报错有两个诱因:
    1. 库名拼写错误:你添加的参数是-ldgi32,正确的GDI库名为gdi32,对应参数应该是-lgdi32,字母顺序为g-d-i而非d-g-i
    2. 参数格式错误:报错中出现的-l-lgdi32说明你重复添加了-l前缀,gcc的链接库参数规则是-l+库名,不需要重复加前缀。

解决方案

  1. 先清除编译命令/IDE链接配置中错误的-ldgi32、-l-lgdi32参数
  2. 手动添加正确的链接参数:-lgdi32
  3. 以MinGW g++编译为例,完整编译命令参考:
g++ 你的源码文件名.cpp -o 输出程序名.exe -lgdi32

额外说明

你提供的测试代码存在冗余头文件引用:重复引入了<cmath>,同时引入了<cmath>和<math.h>,这类冗余不影响编译运行,可自行清理。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 06:54:04