先前在vc6.0上配置opengl不成功,尝试了多种办法,网上的所有方法 都不能正常编译。
所有今天中午我安装了vs2005.又遇到了配置问题:
新建的win32 console下,我用了这个简单的程序:#include <windows.h>
#include "stdafx.h"
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glaux.h>//初始化OpenGL场景
void myinit (void)
{
glClearColor (0.0, 0.0, 0.0, 0.0); //将背景置成黑色
glShadeModel (GL_FLAT); //设置明暗处理}
//用户的绘图过程void CALLBACK display(void){ glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);//清除缓存 glBegin(GL_LINES); //开始画一根白线 glColor3f (1.0f, 1.0f, 1.0f); //设置颜色为白色 //设置第一根线的两个端点,请注意:OpenGL坐标系的原点是在屏幕左下角 glVertex2f(10.0f, 50.0f); glVertex2f(110.0f, 50.0f); glColor3f (1.0f, 0.0f, 0.0f); //设置颜色为红色 //设置第二根线的两个端点 glVertex2f(110.0f, 50.0f); glVertex2f(110.0f, 150.0f); glEnd(); //画线结束 glFlush (); //绘图结束}////主过程:// 初始化Windows的窗口界面// 并初始化OpenGL场景,绘图int main(int argc, char** argv){ auxInitDisplayMode (AUX_RGB); //初始化显示模式,采用RGB彩色系统。 auxInitPosition (0, 0, 400, 150); //初始化窗口位置、大小 auxInitWindow ("Display Lists"); //初始化窗口,设置标题 myinit (); auxMainLoop(display); //循环运行display过程,display由用户编写 return(0);}
首 先: /VC/PlatformSDK/Include/GL 复制到 VC/Include/GL
/VC/PlatformSDK/Lib 复制到 /VC/Lib
dll: /system32 没变生成出现错误: 全是关于gl.h里的函数问题143个: f:\microsoft visual studio 8\vc\include\gl\gl.h(1152) : error C2144: 语法错误 : “void”的前面应有“;”
f:\microsoft visual studio 8\vc\include\gl\gl.h(1152) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
f:\microsoft visual studio 8\vc\include\gl\gl.h(1152) : error C2146: 语法错误 : 缺少“;”(在标识符“glAccum”的前面)
f:\microsoft visual studio 8\vc\include\gl\gl.h(1152) : error C2182: “APIENTRY”: 非法使用“void”类型
f:\microsoft visual studio 8\vc\include\gl\gl.h(1152) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
……搜来的方法:
1、项目\属性”菜单项或按Alt+F7组合键,弹出“[项目名]属性页”对话框,在其左边的“配置”目录栏中,选中“配置属性\链接器\输入”项,(在该其左上角的“配置”栏的下拉式列表中,选择“所有配置”项)在右边顶行的“附加依赖项”栏中键入opengl32.lib glu32.lib glaux.lib,按“确定”钮关闭该对话框。
结果无效!错误依旧 2、 项目 -->选择属性 C\C++-->preprocessor-->preprocessor definition添加GLUT_BUILDING_LIB,中间用分号隔开;
然后点击linker-->input--> additional dependencies添加glut32.lib Opengl32.lib Glu32.lib (与前面的步骤同) 结果无效! 崩溃了快,一个破编程接口的配置费了我近半个月,opengl的红宝书都让我看2遍了,竟然还不能实际操作!
所有今天中午我安装了vs2005.又遇到了配置问题:
新建的win32 console下,我用了这个简单的程序:#include <windows.h>
#include "stdafx.h"
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glaux.h>//初始化OpenGL场景
void myinit (void)
{
glClearColor (0.0, 0.0, 0.0, 0.0); //将背景置成黑色
glShadeModel (GL_FLAT); //设置明暗处理}
//用户的绘图过程void CALLBACK display(void){ glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);//清除缓存 glBegin(GL_LINES); //开始画一根白线 glColor3f (1.0f, 1.0f, 1.0f); //设置颜色为白色 //设置第一根线的两个端点,请注意:OpenGL坐标系的原点是在屏幕左下角 glVertex2f(10.0f, 50.0f); glVertex2f(110.0f, 50.0f); glColor3f (1.0f, 0.0f, 0.0f); //设置颜色为红色 //设置第二根线的两个端点 glVertex2f(110.0f, 50.0f); glVertex2f(110.0f, 150.0f); glEnd(); //画线结束 glFlush (); //绘图结束}////主过程:// 初始化Windows的窗口界面// 并初始化OpenGL场景,绘图int main(int argc, char** argv){ auxInitDisplayMode (AUX_RGB); //初始化显示模式,采用RGB彩色系统。 auxInitPosition (0, 0, 400, 150); //初始化窗口位置、大小 auxInitWindow ("Display Lists"); //初始化窗口,设置标题 myinit (); auxMainLoop(display); //循环运行display过程,display由用户编写 return(0);}
首 先: /VC/PlatformSDK/Include/GL 复制到 VC/Include/GL
/VC/PlatformSDK/Lib 复制到 /VC/Lib
dll: /system32 没变生成出现错误: 全是关于gl.h里的函数问题143个: f:\microsoft visual studio 8\vc\include\gl\gl.h(1152) : error C2144: 语法错误 : “void”的前面应有“;”
f:\microsoft visual studio 8\vc\include\gl\gl.h(1152) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
f:\microsoft visual studio 8\vc\include\gl\gl.h(1152) : error C2146: 语法错误 : 缺少“;”(在标识符“glAccum”的前面)
f:\microsoft visual studio 8\vc\include\gl\gl.h(1152) : error C2182: “APIENTRY”: 非法使用“void”类型
f:\microsoft visual studio 8\vc\include\gl\gl.h(1152) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
……搜来的方法:
1、项目\属性”菜单项或按Alt+F7组合键,弹出“[项目名]属性页”对话框,在其左边的“配置”目录栏中,选中“配置属性\链接器\输入”项,(在该其左上角的“配置”栏的下拉式列表中,选择“所有配置”项)在右边顶行的“附加依赖项”栏中键入opengl32.lib glu32.lib glaux.lib,按“确定”钮关闭该对话框。
结果无效!错误依旧 2、 项目 -->选择属性 C\C++-->preprocessor-->preprocessor definition添加GLUT_BUILDING_LIB,中间用分号隔开;
然后点击linker-->input--> additional dependencies添加glut32.lib Opengl32.lib Glu32.lib (与前面的步骤同) 结果无效! 崩溃了快,一个破编程接口的配置费了我近半个月,opengl的红宝书都让我看2遍了,竟然还不能实际操作!
解决方案 »
- 用atl windows 服务 exe 想在里面加入WMP 控件 纠结
- 求助,关于窗口的置顶和次置顶
- 单文档工程中响应编辑区文字改变的函数是哪个啊,该写在哪里啊?救命!!!
- 深圳 - 有无春节想兼职的来帮忙 :)
- ADO+DBF,连接成功,可查询出现这样错误"External table is not in the expected format"
- 各位朋友,我知道你们只关心技术,其实我也一样
- 如何指定显示的文件类型以及如何指定播放器的类型?
- win32 Application怎么引用MFC的类?
- 这个问题困惑了我很久了!!
- 在vc中如何使用jpg,gif图像文件?
- mfc中如何改变richedit控件的滚动条颜色
- Bluetooth的PIN码问题
==========================
就是一个简单的OpenGL框架有那么复杂么
glu.h
gl.h
glaux.h另外,推荐用glew,很多时候可以避免gl版本的问题
1>T1.obj : error LNK2019: 无法解析的外部符号 _auxInitWindowA@4,该符号在函数 _main 中被引用
1>T1.obj : error LNK2019: 无法解析的外部符号 _auxInitPosition@16,该符号在函数 _main 中被引用
1>T1.obj : error LNK2019: 无法解析的外部符号 _auxInitDisplayMode@4,该符号在函数 _main 中被引用因此,你的错误不在这段代码,可能你stdafx.h里面有引用其它头文件,那个头文件漏了个分号,或者有其它错误。
而且GL也无需任何配置,装好VS直接就用的。
闲了2周,今天调试没有库函数报错了。另外写了个程序,测试了下出现下面2个错误。貌似在用vc6.0时好像也出现过。
__imp____glutInitWithExit@12
__imp____glutCreateWindowWithExit@8 解决方案:
#define GLUT_DISABLE_ATEXIT_HACK
置于#include<GL/glut.h>前,编译就通过了。(高人可否解释下?)
exit有冲突
OpenGL有一个exit
C++的runtime也有一个exit
新版的GL库没有这个问题了
具体处理方式我还真不清楚
应该和你用的这个差不多
方便的能否给个链接,或发我email: [email protected]
谢谢
昨天比较忙把这事忘了
我发了
你查收
应该就是glut的问题
谁给我推荐点书 学学OPFL编程,越基础越好啦
VS2005的VC目录的INCLUDE的文件夹中好像就没有GL这个文件夹。
如果用到了GLUT库的还,还得自己编译,再拷贝头文件。你说的那些程序在VC6下没任何问题,VS2005对C和C++区分更严格。