在CodeBlock中使用第三方的OpenGL(非自带的OpenGL)

2 篇文章 0 订阅
1 篇文章 0 订阅
       使用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 就成功了,也许别人的还不行,为了保险,你可以写上:
#define _STDCALL_SUPPORTED
#define _M_IX86
#define GLUT_DISABLE_ATEXIT_HACK

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

       希望这篇文章对大家有用。
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Code::Blocks 是一个开放源码的全功能的跨平台C/C++集成开发环境.   相比于基于Delphi的Dev-C++共享C++IDE,Code::Blocks是开放源码软件。Code::Blocks由纯粹的C++语言开发完成,它使用了蓍名的图形界面库wxWidgets(2.6.2 unicode)版。对于追求完美的C++程序员,再也不必忍受Eclipse的缓慢,再也不必忍受VS.NET的庞大和高昂的价格。   虽然Code::Blocks从一开始就追求跨平台目标,但是最初的开发重点是Windows系统下的版本,从06年3月21日版本:1.0 revision 2220开始,Code::Blocks在它的每日构建正式提供Linux版本(分两个版本:ubuntu.deb和fc4.rpm)。这样 Code::Blocks在1.0发布时就会是跨越平台的C/C++IDE,它将支持Windows和Linux的主要版本。长期以来C++开发员在Linux没有好用、通用的C++ IDE的局面就要结束。而这个IDE对于Windows下的用户同样重要,由于它开放源码的特点,Windows用户可以不依赖于VS.NET,编写跨平台C++应用。   Code::Blocks提供了许多工程模板,这包括:控制台应用、DirectX应用、动态连接库、FLTK应用、GLFW应用、Irrlicht工程、OGRE应用、OpenGL应用、QT应用、SDCC应用、SDL应用、SmartWin应用、静态库、Win32 GUI应用、wxWidgets应用、wxSmith工程,另外它还支持用户自定义工程模板。在wxWidgets应用选择UNICODE支持文。   Code::Blocks支持语法彩色醒目显示,支持代码完成(目前正在重新设计过程)支持工程管理、项目构建、调试。   Code::Blocks支持插件,目前的插件包括代码格式化工具AStyle;代码分析器;类向导;代码补全;代码统计;编译器选择;复制字符串到剪贴板;调试器;文件扩展处理器;Dev-C++ DevPak更新/安装器;DragScroll,源码导出器,帮助插件,键盘快捷键配置,插件向导;To-Do列表;wxSmith;;wxSmith MIME插件;wsSmith工程向导插件;WindowsXP外观。   Code::Blocks具有灵活而强大的配置功能,除支持自身的工程文件、C/C++文件外,还支持AngelScript、批处理、CSS文件、D语言文件、Diff/Patch文件、Fortan77文件、GameMonkey脚本文件、Hitachi汇编文件、Lua文件、MASM汇编文件、Mathlab文件、NSIS开源安装程序文件、Ogre Compositor脚本文件、Ogre Material脚本文件、OpenGL Shading语言文件、Python文件、Windows资源文件、XBase文件、XML文件、nVidia cg文件。识别Dev-C++工程、MS VS 6.0-7.0工程文件,工作空间、解决方案文件。   Code::Blocks基于wxWidgets开发,正体现了wxWidgets的强大。以前Borland C++ Builder X宣称基于wxWidgets开发跨平台、兼容性好、最优秀的C++ IDE环境,但没有实现;现在Code::Blocks+GNU GCC正在实现这个理想。让我们拭目以待。国内的Code::Blocks爱好者和跨平台开发员应该尽快建立Code::Blocks网站,提供Code::Blocks文化支持,促进Code::Blocks在国内的发展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值