编译ARToolKit遇到的几个问题

来源:互联网 发布:电脑pe手动备份数据 编辑:程序博客网 时间:2024/05/16 12:41

最近在研究在ARToolKit这个框架,今天根据一个博客尝试着自己编译框架,遇到了不少问题,走过了不少坑,记录下自己遇到的几个问题,以免后面忘记了。

1、Error LNK2019错误

这个错误多数情况下是因为没有配置openGL的链接器,也就是lib。

collideTest.obj : error LNK2019: 无法解析的外部符号 __imp__glClear@4,该符号在函数 _draw 中被引用4>libARgsubd.lib(gsub.obj) : error LNK2001: 无法解析的外部符号 __imp__glClear@44>collideTest.obj : error LNK2019: 无法解析的外部符号 __imp__glClearDepth@8,该符号在函数 _draw 中被引用4>collideTest.obj : error LNK2019: 无法解析的外部符号 __imp__glColor3f@12,该符号在函数 _mainLoop 中被引用4>collideTest.obj : error LNK2019: 无法解析的外部符号 __imp__glDepthFunc@4,该符号在函数 _draw 中被引用4>collideTest.obj : error LNK2019: 无法解析的外部符号 __imp__glDisable@4,该符号在函数 _draw 中被引用4>libARgsubd.lib(gsub.obj) : error LNK2001: 无法解析的外部符号 __imp__glDisable@44>collideTest.obj : error LNK2019: 无法解析的外部符号 __imp__glEnable@4,该符号在函数 _draw 中被引用4>libARgsubd.lib(gsub.obj) : error LNK2001: 无法解析的外部符号 __imp__glEnable@44>collideTest.obj : error LNK2019: 无法解析的外部符号 __imp__glLightfv@12,该符号在函数 _draw_object 中被引用4>collideTest.obj : error LNK2019: 无法解析的外部符号 __imp__glLineWidth@4,该符号在函数 _mainLoop 中被引用4>libARgsubd.lib(gsub.obj) : error LNK2001: 无法解析的外部符号 __imp__glLineWidth@44>collideTest.obj : error LNK2019: 无法解析的外部符号 __imp__glLoadMatrixd@4,该符号在函数 _draw_object 中被引用4>libARgsubd.lib(gsub.obj) : error LNK2001: 无法解析的外部符号 __imp__glLoadMatrixd@44>collideTest.obj : error LNK2019: 无法解析的外部符号 __imp__glMaterialfv@12,该符号在函数 _draw_object 中被引用4>collideTest.obj : error LNK2019: 无法解析的外部符号 __imp__glMatrixMode@4,该符号在函数 _draw_object 中被引用4>libARgsubd.lib(gsub.obj) : error LNK2001: 无法解析的外部符号 __imp__glMatrixMode@44>collideTest.obj : error LNK2019: 无法解析的外部符号 __imp__glTranslatef@12,该符号在函数 _draw_object 中被引用4>collideTest.obj : error LNK2019: 无法解析的外部符号 _glutInit@8,该符号在函数 _main 中被引用4>collideTest.obj : error LNK2019: 无法解析的外部符号 _glutSolidSphere@16,该符号在函数 _draw_object 中被引用4>collideTest.obj : error LNK2019: 无法解析的外部符号 _glutSolidCube@8,该符号在函数 _draw_object 中被引用4>libARgsubd.lib(gsub.obj) : error LNK2019: 无法解析的外部符号 __imp__glBegin@4,该符号在函数 _argLineSeg 中被引用4>libARgsubd.lib(gsub.obj) : error LNK2019: 无法解析的外部符号 __imp__glBindTexture@8,该符号在函数 _argInit2 中被引用4>libARgsubd.lib(gsub.obj) : error LNK2019: 无法解析的外部符号 __imp__glCallList@4,该符号在函数 _argDispImageTex3 中被引用4>libARgsubd.lib(gsub.obj) : error LNK2019: 无法解析的外部符号 __imp__glClearColor@16,该符号在函数 _argInitLoop 中被引用4>libARgsubd.lib(gsub.obj) : error LNK2019: 无法解析的外部符号 __imp__glClearStencil@4,该符号在函数 _argInitStencil 中被引用4>libARgsubd.lib(gsub.obj) : error LNK2019: 无法解析的外部符号 __imp__glDrawPixels@20,该符号在函数 _argDispImageDrawPixels 中被引用4>libARgsubd.lib(gsub.obj) : error LNK2019: 无法解析的外部符号 __imp__glEnd@0,该符号在函数 _argLineSeg 中被引用4>libARgsubd.lib(gsub.obj) : error LNK2019: 无法解析的外部符号 __imp__glEndList@0,该符号在函数 _argDispImageTex3 中被引用4>libARgsubd.lib(gsub.obj) : error LNK2019: 无法解析的外部符号 __imp__glFlush@0,该符号在函数 _argLineSeg 中被引用4>libARgsubd.lib(gsub.obj) : error LNK2019: 无法解析的外部符号 __imp__glGenLists@4,该符号在函数 _argDispImageTex3 中被引用4>libARgsubd.lib(gsub.obj) : error LNK2019: 无法解析的外部符号 __imp__glGenTextures@8,该符号在函数 _argInit2 中被引用4>libARgsubd.lib(gsub.obj) : error LNK2019: 无法解析的外部符号 __imp__glLoadIdentity@0,该符号在函数 _argDrawMode2D 中被引用4>libARgsubd.lib(gsub.obj) : error LNK2019: 无法解析的外部符号 __imp__glNewList@8,该符号在函数 _argDispImageTex3 中被引用4>libARgsubd.lib(gsub.obj) : error LNK2019: 无法解析的外部符号 __imp__glOrtho@48,该符号在函数 _argDrawMode2D 中被引用4>libARgsubd.lib(gsub.obj) : error LNK2019: 无法解析的外部符号 __imp__glPixelStorei@8,该符号在函数 _argInit2 中被引用4>libARgsubd.lib(gsub.obj) : error LNK2019: 无法解析的外部符号 __imp__glPixelZoom@8,该符号在函数 _argDispImageDrawPixels 中被引用4>libARgsubd.lib(gsub.obj) : error LNK2019: 无法解析的外部符号 __imp__glRasterPos3f@12,该符号在函数 _argDispImageDrawPixels 中被引用4>libARgsubd.lib(gsub.obj) : error LNK2019: 无法解析的外部符号 __imp__glScissor@16,该符号在函数 _argDispImage 中被引用4>libARgsubd.lib(gsub.obj) : error LNK2019: 无法解析的外部符号 __imp__glStencilFunc@12,该符号在函数 _argInitStencil 中被引用4>libARgsubd.lib(gsub.obj) : error LNK2019: 无法解析的外部符号 __imp__glStencilOp@12,该符号在函数 _argInitStencil 中被引用4>libARgsubd.lib(gsub.obj) : error LNK2019: 无法解析的外部符号 __imp__glTexCoord2d@16,该符号在函数 _argDispImageTex3 中被引用4>libARgsubd.lib(gsub.obj) : error LNK2019: 无法解析的外部符号 __imp__glTexEnvf@12,该符号在函数 _argInit2 中被引用4>libARgsubd.lib(gsub.obj) : error LNK2019: 无法解析的外部符号 __imp__glTexImage2D@36,该符号在函数 _argDispImageTex3 中被引用4>libARgsubd.lib(gsub.obj) : error LNK2019: 无法解析的外部符号 __imp__glTexParameterf@12,该符号在函数 _argInit2 中被引用4>libARgsubd.lib(gsub.obj) : error LNK2019: 无法解析的外部符号 __imp__glTexSubImage2D@36,该符号在函数 _argDispImageTex3 中被引用4>libARgsubd.lib(gsub.obj) : error LNK2019: 无法解析的外部符号 __imp__glVertex2f@8,该符号在函数 _argLineSeg 中被引用4>libARgsubd.lib(gsub.obj) : error LNK2019: 无法解析的外部符号 __imp__glVertex3d@24,该符号在函数 _argDispImageTex3 中被引用4>libARgsubd.lib(gsub.obj) : error LNK2019: 无法解析的外部符号 __imp__glViewport@16,该符号在函数 _argDrawMode2D 中被引用4>libARgsubd.lib(gsub.obj) : error LNK2019: 无法解析的外部符号 _glutInitDisplayMode@4,该符号在函数 _argInit2 中被引用4>libARgsubd.lib(gsub.obj) : error LNK2019: 无法解析的外部符号 _glutInitWindowPosition@8,该符号在函数 _argInit2 中被引用4>libARgsubd.lib(gsub.obj) : error LNK2019: 无法解析的外部符号 _glutInitWindowSize@8,该符号在函数 _argInit2 中被引用4>libARgsubd.lib(gsub.obj) : error LNK2019: 无法解析的外部符号 _glutMainLoop@0,该符号在函数 _argMainLoop 中被引用4>libARgsubd.lib(gsub.obj) : error LNK2019: 无法解析的外部符号 _glutCreateWindow@4,该符号在函数 _argInit2 中被引用4>libARgsubd.lib(gsub.obj) : error LNK2019: 无法解析的外部符号 _glutSwapBuffers@0,该符号在函数 _argSwapBuffers 中被引用4>libARgsubd.lib(gsub.obj) : error LNK2019: 无法解析的外部符号 _glutFullScreen@0,该符号在函数 _argInit2 中被引用4>libARgsubd.lib(gsub.obj) : error LNK2019: 无法解析的外部符号 _glutDisplayFunc@4,该符号在函数 _argMainLoop 中被引用4>libARgsubd.lib(gsub.obj) : error LNK2019: 无法解析的外部符号 _glutKeyboardFunc@4,该符号在函数 _argInitLoop 中被引用4>libARgsubd.lib(gsub.obj) : error LNK2019: 无法解析的外部符号 _glutMouseFunc@4,该符号在函数 _argInitLoop 中被引用4>libARgsubd.lib(gsub.obj) : error LNK2019: 无法解析的外部符号 _glutIdleFunc@4,该符号在函数 _argInitLoop 中被引用4>libARgsubd.lib(gsub.obj) : error LNK2019: 无法解析的外部符号 _glutGet@4,该符号在函数 _argInit2 中被引用

解决办法:

在工程属性->连接器–输入–附加依赖项 栏目里添加以下几个lib文件:

glut32.libOpengl32.libGlu32.lib

2、Error LNK2026: 模块对于 SAFESEH 映像是不安全的。

这个错误经常会出现很多。如下:
这里写图片描述

解决办法

在工程属性–链接器–命令行 中添加以下命令:

/SAFESEH:NO 
原创粉丝点击