我正在学习如何编写OpenGL着色器。为什么在我的机器上运行此代码时会出现分段错误?(我正在使用Ubuntu 10.04并将其命名为shader.cpp。)
#include <GL/glut.h>
#include <iostream>
using namespace std;
int
main (int argc, char **argv)
{
GLuint myVertexShader = glCreateShader(GL_VERTEX_SHADER);
return 0;
}
我使用以下Makefile进行编译:
CC=g++
CFLAGS=-c -Wall -DGL_GLEXT_PROTOTYPES
LDFLAGS= -lglut -lGLU -lGL -lXmu -lXext -lX11 -lm
SOURCES=shader.cpp
OBJECTS=$(SOURCES:.cpp=.o)
EXECUTABLE=shader
all: $(SOURCES) $(EXECUTABLE)
$(EXECUTABLE): $(OBJECTS)
$(CC) $(LDFLAGS) $(OBJECTS) -o $@
.cpp.o:
$(CC) $(CFLAGS) $< -o $@
clean:
rm -rf *o $(EXECUTABLE)
check-syntax:
$(CC) -o nul -S ${CHK_SOURCES}
似乎是在调用glCreateShader的那一行出现了段错误。我没有找到这个问题的根源,因为我是初学者。谢谢!
注意: 这段代码代表着我第一次尝试使用OpenGL编写简单的着色器。如果全部错误,请随意发布一些可行的代码。我真正想要的是能够编译和运行的东西。