加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

error LNK2019: 无法解析的外部符号(转)

(2013-07-22 14:38:11)
标签:

vc

分类: C

error LNK2019,具体描述为:error LNK2019: 无法解析的外部符号 _gluPerspective@32,该符号在函数 “void __cdecl ReSizeGLScene(int,int)” (?ReSizeGLScene@@YAXHH@Z) 中被引用,还有整整15个之多,废话不多说,贴图证明:

这是也是花了我不少的时间,这是因为链接库没有导入,导致很多的符号未曾定义,解决办法有两个:

1、代码法:

在代码开头加入如下三行代码即可:

#pragma comment( lib, "glaux.lib" )
#pragma comment( lib, "glu32.lib" )
#pragma comment( lib, "OpenGL32.lib" )

至于以上三个链接库在不在C:\Program Files\Microsoft Visual Studio 9.0\VC\lib目录下面,倒是没有影响(我的Microsoft Visual Studio 2008 安装在C盘)

2、配置法:

选择”项目”菜单–>最后的”属性”->”配置属性”->”链接器”->”输入”->在“附加依赖项”里增加opengl32.lib,glu32.lib,glaux.lib(注意在增加进行输入的时候,每行一个)截图如下:

采用以上的任何一种方法,进行设置,都能解决与我类似的问题!编译将能顺利通过。

注意:本人的环境为Windows 7下的Microsoft Visual Studio 2008

==========================================================================

号外:在网络上看到另外一篇文章,也是error 2019错误的,其遇到的错误为:

  1. 1>GEARS.obj error LNK2019: 无法解析的外部符号 ___glutInitWithExit@12,该符号在函数 _glutInit_ATEXIT_HACK@8 中被引用
  2. 1>GEARS.obj error LNK2019: 无法解析的外部符号 ___glutCreateWindowWithExit@8,该符号在函数 _glutCreateWindow_ATEXIT_HACK@4 中被引用

解决的办法为:在#include 前面加上了一句:  #define GLUT_DISABLE_ATEXIT_HACK

 

出现这个问题的原因是:glut.h的注释竟然就写着如下内容:      Note that the __glut*WithExit routines should NEVER be called directly.   To avoid the atexit workaround, #define GLUT_DISABLE_ATEXIT_HACK.

也就是说 GLUT_DISABLE_ATEXIT_HACK 函数根本就无法直接调用,所以需要预定义一下才行。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有