zoukankan      html  css  js  c++  java
  • 问题解决——OpenGL超级宝典 关于gltDrawTorus的错误解决

    看OpenGL超级宝典的时候,遇到一个函数 “gltDrawTorus”,在TRANSFORM和SPHEREWORLD中都有用到。但是一开始在自己写示例代码里时却没法使用,而在作者的代码目录结构下却可以使用。由于作者说SPHEREWORLD这个例子还要用,我就狠下心来研究了一个简单的解决方案,顺便把过程记录下来,以便追思。


    在不使用作者的frame类的时候,我都是直接调用glut.h,所以刚开始编译时遇到了:

    1error C3861: “gltDrawTorus”: 找不到标识符

    解决方法:尝试了添加作者shared文件夹下的各种头文件结果没有成功,于是妥协了尝试使用作者的gltools.h文件,再次编译遇到了:

    2error LNK2019: 无法解析的外部符号 "void __cdecl gltDrawTorus(float,float,int,int)" (?gltDrawTorus@@YAXMMHH@Z),该符号在函数 "void __cdecl RenderScene(void)" (?RenderScene@@YAXXZ) 中被引用

    1>D:WLSCodeTransformDebugTransform.exe : fatal error LNK1120: 1 个无法解析的外部命令

    解决方法:在VS2010中查看了“gltools.h”文件中的内容,发现#include "glee.h"和#include "glut.h"一行的#include被标红了,于是想到可能是文件路径有问题。鉴于“glut.h”文件在配置OpenGL环境的时候被放在了“C:Program FilesMicrosoft SDKsWindowsv7.0AIncludegl”中,所以我进行了下面的配置:

    将作者shared文件夹下的GLee.h、glframe.h、glfrustum.h、gltools.h、math3d.h、wglext.h文件复制到“C:Program FilesMicrosoft SDKsWindowsv7.0AIncludegl”中。(我把头文件都拷贝过去了,省得以后还要再添加。)


    这样一来代码中的引用就改为:#include "gl/XXXXXX.h"

    再次编译链接成功。(当然添加了头文件,就要在工程中相应的添加Glee.c、gltools.cpp、math3d.cpp,这我就不多说了。)




  • 相关阅读:
    flask简单应用以及配置文件的写法。
    Django REST framework使用及源码分析之节流
    rancher1.6高可用集群搭建
    Rancher安装多节点高可用(HA)
    Rancher 2.2.2
    TeamCity+Rancher+Docker实现.Net Core项目DevOps(目前成本最小的DevOps实践)
    Docker学习笔记_10 docker应用
    一键获取数据库整体信息脚本
    MySQL性能优化最佳实践
    MySQL性能优化最佳实践
  • 原文地址:https://www.cnblogs.com/wlsandwho/p/4202177.html
Copyright © 2011-2022 走看看