CodeBlocks+OpenGL遇见的问题汇总

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 scopeundefined reference to WinMain@16' collect2.exe: error: ld returned 1 exit这些问题

试着实验网上的代码,经过调试在电脑上运行起来,感到很开心。

学习

实例问题记录:

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实现跳跃的立体小球

学习网站
https://learnopengl-cn.github.io/

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页