1.摸索了安装软件,配置OpenGL,关键在glu的几个文件分别放在哪里,新建工程怎样设置链接库。
2.试着运行上课的代码
在这个过程中遇见几个问题:发现一个建立c/c++文件需要选择#include<iostream>
和#include<stdio.h>,另一个是头文件#include <GL/gl.h>、#include <GL/glut.h>
需要替换#include <GL/ogl.h>
。对OpenGL的头文件不够了解。
3.遇见的错误总结:
1.error:assignment of read-only variable 'S_width'
2.error:initializer element is not constant
-
问题描述:编译时出现 initializer element is not constant 错误。
-
问题原因:全局变量的值不能在编译时确定,要在执行时确定(编译原理),也就是说,全局变量在函数外部应只是声明,赋值的操作应该在函数中进行。
-
解决方案:在外部声明变量名称,在函数中进行赋值。
3.codeblocks上warning:ignoring #pragma comment {-Wunknown-pragmas}
- 问题原因:看网上是 mingw使用msvc的方式 会发出 warning: ignoring #pragma comment [-Wunknown-pragmas]原因是,GCC下没有和#pragma comment (lib,“ws2_32”)对等的预处理语句。
- 解决方案:工具栏–>Project–>build options,选Linker settings,Add所需静态链接库文件就OK了
4.opengl32.lib
标红,随之就是某文件 undefined reference to __某OpenGL函数名
异常。看网上总结原因有很多,我是没有把库链接好。
5.codeblocks的使用之建立头文件。可以参考这篇https://blog.csdn.net/qq_40741513/article/details/80858910
点击File>>New>>Build target>>Files>>C/C++header >>go
- 进入codeblocks,file->addfile,把创建的.h文件添加进去。
在包含头文件的时候要用"",例如:“header.h”。因为<>是用来包含编译器自带的头文件的,""是用来包含自己写的头文件的。
建议在头文件开头加上:
#ifndef HEADER.H
#define HEADER.H …
#endif 防止重复定义,当然如果不会多次使用这个头文件也可以不加。 “HEADER.H”一般用“头文件的大写名称
6.还有exit was not declared in this scope
、undefined reference to WinMain@16' collect2.exe: error: ld returned 1 exit
这些问题
试着实验网上的代码,经过调试在电脑上运行起来,感到很开心。
学习
-
codeblocks中dll是什么文件夹(https://blog.csdn.net/kld1412/article/details/51628424)
-
codeblocks中cpb是什么文件。了解codeblocks工程
-
cbp文件: .cbp(codeblocksProject)codeBlocks工程文件
-
opengl配置文件资源下载。这个比较全但是积分不够(https://download.csdn.net/download/blink31/4376444)
-
在AutoCAD和3DMax等交互式造型环境中, 用户可以利用鼠 标拖动形体在计算机屏幕上做三维任意自由度的旋转, 使用户 可以观察形体各个不同侧面的几何图形特征. 这种对用户来说 十分方便的技术就是----鼠标跟踪球(Trackball)技术.
实例问题记录:
1.绘制教室里地球仪:
F:\test\earth\src\earth.cpp|84|error: no matching function for call to 'std::basic_ifstream<wchar_t>::basic_ifstream(const wchar_t*&)'|
- 待解决
2 Code::Blocks : undefined reference to xxxxxx@4'
- 原因:缺少lib库。 解决办法:添加lib库。
3.关于控制台文件stdafx.h。
参考这篇博客
- 解决办法就是把这堆代码复制一下到自己新建的“stdafx.h”里面,之后
放在和你的源文件一个目录下面就行啦。
4.编译时出现 initializer element is not constant 错误
翻译错误是初始化元素不是常量。用这里介绍的方法更改为#define,可是出现上面错误2。so该问题没找到解决方法。
5.glaux的使用
学习资源:
1.OpenGL模拟太阳系运行
2.OpenGL绘制旋转茶壶
3.用openGL做一个时钟动画
4.用OpenGL实现跳跃的立体小球