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

VS2017下OpenGL链接问题求助:未解析符号gluPerspective

解决VS2017中OpenGL链接gluPerspective的LNK2028错误

嘿,这个LNK2028未解析符号的问题我之前在VS2017里搞OpenGL的时候也踩过坑,给你几个靠谱的排查方向:

  • 确认GLU库已正确添加到链接器
    gluPerspective是GLU库的专属函数,不是基础OpenGL库的内容,所以你需要在项目属性的链接器->输入->附加依赖项里添加glu32.lib(注意是glu32.lib,别和opengl32.lib搞混了)。同时要确保链接器的附加库目录里包含了GLU库所在的路径(比如你用的OpenGL SDK的lib文件夹)。

  • 修复C++名字修饰问题
    错误里的?gluPerspective@@$$J0YAXNNNN@Z是C++编译器对函数名进行修饰后的结果,但GLU库是用C语言导出的符号,这就导致了符号匹配失败。解决方法是把OpenGL相关头文件用extern "C"包裹:

    extern "C" {
        #include <GL/gl.h>
        #include <GL/glu.h>
    }
    

    这样编译器就会按照C语言的规则处理这些函数的名字,不会生成C++风格的修饰名。

  • 检查项目平台与库的匹配性
    如果你项目的平台是x86,那必须链接32位的GLU库;如果是x64,就要用64位的库。别把平台和库的位数搞混,这也是常见的符号不匹配原因。可以在项目属性的配置管理器里确认当前平台,再对应检查库的位数。

  • 处理CLR项目的特殊情况
    从错误信息里的__clrcall可以看出,你的项目是CLR(公共语言运行时)项目。这种项目的函数调用约定和普通C项目不同,容易导致符号不匹配。如果你的项目不需要CLR支持,可以右键项目->属性->配置属性->C/C->所有选项->公共语言运行时支持,改成“无公共语言运行时支持”;如果必须用CLR,那要确保你链接的GLU库是兼容CLR的版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:39:20