sfmlでシェーダーを使用しようとすると、シェーダーを作成できません。関数glCreateShader(GL_VERTEX_SHADER); セグメンテーション違反が発生します。最初にグーグルで調べたところ、プログラムがopenglコンテキストを持っていない場合にそうなることがわかりました。私は最初にSDLを試しましたが、不十分なドキュメントと「ヘッダーを見て何をすべきかを知る」ことでsfmlに行きました
セグメント障害の原因となるコードは次のとおりです
sf::Window App(sf::VideoMode(800, 600, 32), "SFML OpenGL");
// Set color and depth clear value
glClearDepth(1.f);
glClearColor(0.f, 0.f, 0.f, 0.f);
// Enable Z-buffer read and write
glEnable(GL_DEPTH_TEST);
glDepthMask(GL_TRUE);
// Setup a perspective projection
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
GLuint vertShader = glCreateShader(GL_VERTEX_SHADER);
//...
gcc linuxでopengl 2.1を使用して、glew、gl.h、sfml-window、sfml-systemを含めています。
何が欠けている?