初学opengl(一)第一个opengl程序及error LNK2019: unresolved external symbol的解决

原创 2016年03月01日 15:02:09

操作系统:Windows 8.1; 开发环境:Visual Studio 2013

opengl的安装非常简单,很多人写博客介绍,随便找一个跟着做就差不多。

安装完成后,找了一个同学写好的工程拿来测试,可以用。然后,自己新建一个工程,Win32 Console Application,Empty project。

网上找来一个最简单程序,在窗口中画一个红色的方块,用来学习。

#include <gl/glut.h>

void Initial();
void Display();
int main(int argc, char *argv[])
{
	glutInit(&argc, argv);
	glutCreateWindow("My First Opengl Project");
	glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
	glutInitWindowSize(500, 400);
	glutInitWindowPosition(200, 100);
	glutDisplayFunc(Display);
	Initial();
	glutMainLoop(); 
	return 0;
}
void Display()
{
	glClear(GL_COLOR_BUFFER_BIT);
	glColor3f(1.0f, 0.0f, 0.0f);
	glRectf(50.0f, 100.0f, 150.0f, 50.0f);
	glFlush();
}

void Initial()
{
	glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
	glMatrixMode(GL_PROJECTION);
	gluOrtho2D(0.0, 200.0, 0.0, 150.0);
}
可是,编译的时候,一直报错,error LNK2019: unresolved external symbol,无法解析的外部符号。具体如下
1>test.obj : error LNK2019: unresolved external symbol __imp__glClear@4 referenced in function "void __cdecl Display(void)" (?Display@@YAXXZ)
1>test.obj : error LNK2019: unresolved external symbol __imp__glClearColor@16 referenced in function "void __cdecl Initial(void)" (?Initial@@YAXXZ)
1>test.obj : error LNK2019: unresolved external symbol __imp__glColor3f@12 referenced in function "void __cdecl Display(void)" (?Display@@YAXXZ)
1>test.obj : error LNK2019: unresolved external symbol __imp__glFlush@0 referenced in function "void __cdecl Display(void)" (?Display@@YAXXZ)
1>test.obj : error LNK2019: unresolved external symbol __imp__glMatrixMode@4 referenced in function "void __cdecl Initial(void)" (?Initial@@YAXXZ)
1>test.obj : error LNK2019: unresolved external symbol __imp__glRectf@16 referenced in function "void __cdecl Display(void)" (?Display@@YAXXZ)
1>test.obj : error LNK2019: unresolved external symbol _gluOrtho2D@32 referenced in function "void __cdecl Initial(void)" (?Initial@@YAXXZ)
1>test.obj : error LNK2019: unresolved external symbol _glutInit@8 referenced in function _main
1>test.obj : error LNK2019: unresolved external symbol _glutInitDisplayMode@4 referenced in function _main
1>test.obj : error LNK2019: unresolved external symbol _glutInitWindowPosition@8 referenced in function _main
1>test.obj : error LNK2019: unresolved external symbol _glutInitWindowSize@8 referenced in function _main
1>test.obj : error LNK2019: unresolved external symbol _glutMainLoop@0 referenced in function _main
1>test.obj : error LNK2019: unresolved external symbol _glutCreateWindow@4 referenced in function _main
1>test.obj : error LNK2019: unresolved external symbol _glutDisplayFunc@4 referenced in function _main
1>E:\visual studio 2013\Projects\FirstOpengl\Debug\FirstOpengl.exe : fatal error LNK1120: 14 unresolved externals
在网上找了很多教程,都没有解决。

当出现这种错误的时候,肯定不是程序有错,而是链接过程出错。即,程序没有找到在.h文件中定义的函数的实现。

有人说在最开头加上这么一句    #define GLUT_DISABLE_ATEXIT_HACK

大家可以试一下,我的问题是没有解决,但是也可能不同的机器会有不同的结果吧。

也有人说在程序段之前加这一句     #pragma comment(lib,"glut32.lib")
结果还是跟报error LNK2019,但是之前的14条错误,现在变成了7条,应该也是有点用的吧。

之后在一个英文网站上找到了解决方案,http://stackoverflow.com/questions/5365441/opengl-glut-compiling-issues

解决的方式为:Project --->  Properties --->  configuration properties  --->  Linker  ---> Input  --->  Additional Dependencies中添加 

glut32.lib
glu32.lib
opengl32.lib
问题解决,编译成功。
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011636440/article/details/50772653

解决Error LNK2019: unresolved external symbol

The problem with your project is that you are using a “C” style exported library in your C++ project...
  • u010309553
  • u010309553
  • 2016-09-15 13:53:24
  • 570

关于error LNK2019::Unresolved External Symbol * Referenced In Function..解决办法 2

前几天我转了一篇关于error LNK2019::Unresolved External Symbol * Referenced In Function..解决办法的博客,但我自己后来按照上面的办法并...
  • baidu_24736703
  • baidu_24736703
  • 2016-05-17 22:13:04
  • 4490

error LNK2019:unresolved external symbol

error LNK2019:unresolved external symbol 分类: 网络编程2012-07-22 17:30 31人阅读 评论(0) 收藏 举报 出现以下错误...
  • jfkidear
  • jfkidear
  • 2012-08-15 20:42:31
  • 7011

C++ error LNK2019: "unresolved external symbol"解决方法

1>  LINK : D:\code\OpenGLTest\Debug\OpenGLTest.exe not found or not built by the last incremental li...
  • jd_19900903
  • jd_19900903
  • 2014-05-19 16:41:16
  • 6316

debug : error LNK2019: unresolved external symbol compress referenced in function "public: int __cde

序帮别人解决问题。 他升级了一个vc6的dll工程到vs2012, 编译不过。应该是他移植的有问题。 我先将vc6的dll工程直接用vs2015打开升级,消掉编译警告和错误后,新建了一个d...
  • LostSpeed
  • LostSpeed
  • 2017-07-27 01:19:39
  • 285

error LNK2019:unresolved external symbol的解决方法

我们都知道,当我们在链接程序的时候,出现了如下错误,那是代表,程序没有找到在.h文件中定义的函数的实现。 error LNK2019:unresolved external symbol   有...
  • zxj1988
  • zxj1988
  • 2013-03-06 16:33:41
  • 13385

error LNK2019: unresolved external symbol

error LNK2019: unresolved external symbol(2007-05-28 10:23:43) 转载   分类:Programe(C/C++/VC/....
  • jtop0
  • jtop0
  • 2010-08-01 03:29:00
  • 64084

错误 1 error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartu

当出现这种错误时,你首先要做得是检查代码拼写错误 ,特别是字母拼写顺序错误、{ }不匹配,有很大概率是这种低级错误。接下来才考虑其它问题:   产生这个问题可能的原因 1, 你用vc建了一个控制台程序...
  • neuqbingoye
  • neuqbingoye
  • 2012-02-27 20:07:44
  • 22300

链接错误:error LNK 2019 :Unresolved external symbol

链接错误:error LNK 2019 :Unresolved external symbol 背景: 做X-ray食品检测,怎么都链接不到库。而使用以前编译的可以,而两个版本没有变化...
  • thefieryice
  • thefieryice
  • 2015-07-18 14:16:22
  • 292

Error LNK2019:Unresolved External Symbol 解决方案

参考:http://www.educity.cn/wenda/351518.html Error LNK2019:Unresolved External Symbol *** Referenced ...
  • rudy_axle
  • rudy_axle
  • 2014-12-26 18:07:06
  • 7665
收藏助手
不良信息举报
您举报文章:初学opengl(一)第一个opengl程序及error LNK2019: unresolved external symbol的解决
举报原因:
原因补充:

(最多只允许输入30个字)