我一直在自学一些使用 SFML 来创建窗口/处理输入等的 OpenGL。我的 main.cpp 开始变得有点笨拙,所以我决定开始拆分我的代码。我创建了一个 4X_vertex.h 和一个 4X_vertex.cpp(4X 是项目的名称),并将相关的函数和结构从我的主文件中移出并放入这些文件中。但是,当我编译时,我得到了错误
variable or field "drawVertexArray" declared void
根据我的研究,这似乎只是与下一个错误有关的无用信息,即
vertex was not declared in this scope
这是我的列表中包含的内容main.cpp
:
#include <iostream>
#include <fstream>
#include <string>
#include <SFML/System.hpp>
#include <SFML/Window.hpp>
#include <SFML/Graphics.hpp>
#include "4x_vertex.h"
#include "4x_constants.h"
我的4X_vertex.h
:
#ifndef _4X_VERT_H
#define _4X_VERT_H
struct vertex{
GLfloat x,y,z;
GLfloat r,g,b;
};
void drawVertexArray(vertex v[]);
vertex* loadVertexData();
#include "4X_vertex.cpp"
#endif
这部分4X_vertex.cpp
给我带来了麻烦:
using namespace std;
void drawVertexArray(vertex v[]){
... openGL stuff...
}
在我开始移动它之前,所有这些都起作用了,所以我假设包含的东西有些奇怪,或者其他什么。非常感谢所有帮助!