我的头文件是这样写的#include <stdio.h> #include <math.h> #include <fstream> #include <iostream> #include <string>//getline #include <sstream> #include "stb_image.h" #pragma comment(lib, "openGL32.lib") #pragma comment(lib, "glu32.lib") #pragma comment(lib, "glaux.lib") #include <gl/glaux.h> #include "glew.h" #include "glut.h" #include <vector>,请问如何避免报错gl.h included before glew.h呢
时间: 2023-09-12 22:06:40 浏览: 290
在你的头文件中,应该将 `glew.h` 的引入放在 `gl.h` 的引入之前。因此,你应该将 `glew.h` 的引入语句移到 `gl.h` 的引入语句之前,就像这样:
```
#include <stdio.h>
#include <math.h>
#include <fstream>
#include <iostream>
#include <string>//getline
#include <sstream>
#include "stb_image.h"
#include <gl/glaux.h>
#include <vector>
#include "glew.h"
#include <gl/glut.h>
#pragma comment(lib, "openGL32.lib")
#pragma comment(lib, "glu32.lib")
#pragma comment(lib, "glaux.lib")
```
这样就能够避免 `gl.h included before glew.h` 的错误了。
相关问题
#include<stdio.h> #include"common.h" #include <cstring> #include <iostream> #include <fstream> #include <cmath>
这是一段C++代码的开头部分,包含了几个常见的头文件:
1. `#include<stdio.h>`:这是标准输入输出库的包含,提供了基本的输入输出函数,如`printf`和`scanf`。
2. `#include"common.h"`:这是一个自定义的头文件,可能是程序开发者为了复用一些通用的功能或常量定义而创建的。
3. `#include <cstring>`:用于字符串处理功能,包括`strcpy`, `strlen`, 等操作字符串的库函数。
4. `#include <iostream>`:输入输出流库,提供丰富的文本输入输出操作,比如`cout` 和 `cin`。
5. `#include <fstream>`:文件I/O操作,允许对文件进行读写操作,例如创建、打开和关闭文件流。
6. `#include <cmath>`:数学计算库,包含许多数学函数,如三角函数、指数运算、对数等。
在这段代码中,程序员可能会用到上述的各种库函数来进行数据输入输出、字符串处理、数学计算以及文件操作。请注意,在实际编程中,如果`common.h`不存在或者引用错误,编译器会报错。
#include <iostream>和#include <stdio.h>区别
`#include <iostream>` 和 `#include <stdio.h>` 都是 C++ 和 C 编程中用于引入标准输入输出库的预处理器指令,但它们在语法、功能和兼容性上存在一些差异:
1. **C++**:`<iostream>` 是 C++ 标准库的一部分,专门用于处理输入输出操作,包括 cin/cout 对象(用于标准输入/输出)和 endl 操作符(用于换行)。`iostream` 包含了 `<fstream>` 和 `<iomanip>` 等其他文件,提供了丰富的输入输出控制。
2. **C**:`<stdio.h>` 是 C 语言的传统输入输出库,包含了基本的 I/O 函数,如 scanf(), printf(), getchar(), stdout, stdin, stderr 等。这个库在 C 语言的标准头文件中是标准的一部分。
- **语法不同**:C++ 使用尖括号 `< >`,而 C 语言使用花括号 `{ }`。
- **命名约定**:C++ 中的流类如 `std::cout` 通常使用 `::` 标识命名空间,而 C 中则直接使用库名。
- **模板和异常处理**:C++ 提供了模板和异常处理机制,`iostream` 中的很多类和函数支持这些特性,而 `<stdio.h>` 更基础,不包含这些现代特性。
**相关问题**:
1. C++ 何时会推荐使用 `<iostream>` 而不是 `<cstdio>`?
2. C 语言中,如果要进行更复杂的文件操作,应该如何引入相应的库?
3. C++ 和 C 在处理输入输出时,哪一种更容易出错或需要额外的关注?
阅读全文