Я пробую OpenGL и C ++, и я следовал этому видеоурою при написании моей программы (мой код точно такой же, как и у него). Я также следовал инструкциям на сайте freeglut здесь , чтобы настроить freeglut, скомпилировать и связать мою программу. Исходный код компилируется без проблем, но когда я пытаюсь запустить exe, я получаю сообщение об ошибке. Единственная причина, о которой я мог подумать, это то, что я не использую IDE, поэтому я, вероятно, пропускаю некоторые шаги компиляции или пропускаю некоторые аргументы командной строки при запуске exe, что IDE сделала бы автоматически. Может кто-нибудь сказать мне, что мне нужно сделать, чтобы правильно запустить мою программу?
Вот мой код:
#include <GL/glut.h>
void init() {
glClearColor(1.0, 1.0, 0.0, 1.0);
}
void display() {
glClear(GL_COLOR_BUFFER_BIT);
glLoadIdentity();
glFlush();
}
int main(int argc, char **argv) {
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB);
glutInitWindowPosition(200, 100);
glutInitWindowSize(500, 500);
glutCreateWindow("Window 1");
glutDisplayFunc(display);
init();
glutMainLoop();
}
Когда я компилирую, я запускаю
gcc -c -o hello.o hello.cpp -I"C:\MinGW\include"
gcc -o hello.exe hello.o -L"C:\MinGW\lib" -lfreeglut -lopengl32 -Wl,--subsystem,windows
Затем я попробуйте запустить hello.exe
, но я получаю только сообщение об ошибке "Приложение не может запуститься правильно (0xc000007b)".
Кстати, я видел этот повторяющийся вопрос , но я пытался поставить DLL в том же каталоге (он был там с самого начала), но это ничего не изменило.