在CodeBlocks中使用openGL

      ( 原文找不到了,只有某个转载该篇文章的博客链接:    http://lcx543576178.blog.163.com/blog/static/235146085201410402924520/
使用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]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. #define _STDCALL_SUPPORTED  
  2. #define _M_IX86  
  3. #define GLUT_DISABLE_ATEXIT_HACK  

       记住一定要放在包含OpenGL的头文件代码之前才起作用。这时编译一般都能成功了,但可能还会有警告,你可以在刚才位置加入以下代码来去除警告:
[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. #define GLUT_NO_WARNING_DISABLE  

猜你喜欢

转载自blog.csdn.net/sunny_xsc1994/article/details/44300771
今日推荐