博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在CodeBlocks中使用openGL
阅读量:4156 次
发布时间:2019-05-25

本文共 1423 字,大约阅读时间需要 4 分钟。

      (
原文找不到了,只有某个转载该篇文章的博客链接:    )
使用VS来配置OpenGL当然很快也很顺利,但是本人更喜欢用轻量级的CodeBlock写小程序,而本人还是个CodeBlock新手,搞了很久才搞定·········
       在CodeBlock中原本就已经自带了部分的OpenGL头文件和.a库文件,但是不全面,缺少glut。所以我就下载了别人凑好的“较全面版本”来使用。配置步骤如下:

(1)将OpenGL解压到一个文件夹,这时文件夹内一般都会有一个存放着头文件的include文件夹和一个存放着lib文件的lib文件夹,又或者直接就是头文件和lib文件混在一个文件夹内。

(2)在CodeBlock中打开点击 Settings->Global Variables 打开一个对话框,单击第二行的new,输入你喜欢的变量名,我的是opengl,按确定,然后在左边base一栏填入OpenGL所在的目录,我的是 D:\MyWorkSpace\OpenGL_SDK ,在include一栏和lib一栏按如下填写。总之就是提供头文件和lib文件的所在目录,要是所有文件都混在一起,那么三个路径可以一样。最后单击 close 。
(3)如果只想让一个项目能检测到OpenGL的目录,那么就在已存在的项目基础上单击 Project->Build Option;如果想让所有项目都能检测到OpenGL目录,那么就单击 Settings->Complier。然后转到 Search Directories 选项卡,在下面的 Complier选项卡中点Add增加一栏相对路径为 $(#OpenGL)\include ,转到旁边的Linker选项卡增加一栏 $(#OpenGL)\lib 。再转到上面的 Linker Settings 选项卡,按下面的Add添加OpenGL目录中的所有lib(可能文件数量跟我的会有出入,无碍),之后弹出的对话框按“OK”或“NO”都可以。最后按OK。
                       
(4)编译,连接。这时候,如果不出现问题的话,恭喜你,配置完成。但是,也许一些人像我一样苦逼地遇上问题了,编译报错,大概是:

        
某文件 undefined reference to '__某OpenGL函数名'

       这种格式的错误信息一般是lib文件链接不成功而引起的,所以起初我还以为MinGW编译器不可以使用lib,而只能使用 a 文件,所以我又找到了MinGW的实用程序打算将lib转换为a文件,可是偏偏不成功,生成了dll。在我舍友的机子上更奇怪,生成的是obj。网上的大神们似乎都没遇到这种情况,所以我很久都没找到解决办法,于是我决定抛弃这种方法。找了好久终于找到两篇文章说到“
undefined reference”
这个问题:

       
我的在包含OpenGL的include预编译指令前增加 #define _STDCALL_SUPPORTED 就成功了,也许别人的还不行,为了保险,你可以写上:
[cpp] 
  1. #define _STDCALL_SUPPORTED  
  2. #define _M_IX86  
  3. #define GLUT_DISABLE_ATEXIT_HACK  

       记住一定要放在包含OpenGL的头文件代码之前才起作用。这时编译一般都能成功了,但可能还会有警告,你可以在刚才位置加入以下代码来去除警告:

[cpp] 
  1. #define GLUT_NO_WARNING_DISABLE  
你可能感兴趣的文章
学习技术的几个境界
查看>>
计算机世界:免费的代价
查看>>
方兴东:中国网站十年
查看>>
2010年微软和谷歌十大战场:从桌面到浏览器
查看>>
一个合格网络管理员的成长经历
查看>>
关于对网络学习方法的一点见解
查看>>
2011对于运维的思考
查看>>
架势无线CEO叶忻:做面向大众消费的产品
查看>>
专访运维与人才外包专家黄琨:运维工作最大的挑战是什么?
查看>>
IT行业:运维工程师的职责和前景
查看>>
接连三个百度副总裁都栽在“违纪”、“腐败”上,这是怎么了?
查看>>
我看百度的问题
查看>>
大公司使用Linux系统的使用方式
查看>>
马云给阿里巴巴员工的公开信
查看>>
服务器虚拟化的未来之路
查看>>
写给我们这些浮躁的系统工程师
查看>>
IT从业者的心理走向
查看>>
吴恩达公开信:《开启我在人工智能领域的新篇章》
查看>>
还原百度AI派系之争:吴恩达出局,马东敏陆奇定胜负
查看>>
和平分手?你根本不知道吴恩达在百度经历了什么
查看>>