Форум программистов, компьютерный форум, киберфорум
Наши страницы
OpenGL
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.59/49: Рейтинг темы: голосов - 49, средняя оценка - 4.59
Alexey R
5 / 5 / 1
Регистрация: 23.11.2009
Сообщений: 608
1

OpenGL.Урок 1. простой OpenGL-проект

09.09.2010, 20:57. Просмотров 8868. Ответов 12
Метки нет (Все метки)

Не компилируется кодю
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <GL\glut.h>
 
void DrawLine() 
{
    glClear(GL_COLOR_BUFFER_BIT);
    glColor3f(1.0, 1.0, 1.0);
    glBegin(GL_LINES);
    glVertex3f(0.25, 0.25, 0.0);
    glVertex3f(0.75, 0.75, 0.0);
    glEnd();
    glFlush();
}
 
void Initialize() 
{
    glClearColor(0.0, 0.0, 0.0, 0.0);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
}
 
int main(int iArgc, char** cppArgv) 
{
    glutInit(&iArgc, cppArgv);
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
    glutInitWindowSize(250, 250);
    glutInitWindowPosition(200, 200);
    glutCreateWindow("Draw Line");
    Initialize();
    glutDisplayFunc(DrawLine);
    glutMainLoop();
    return 0;
}
Пишут ошибки типа: [Linker error] undefined reference to
Также пишут: ld returned 1 exit status.
Код вводил, просматривая видеурок.
Среда - Dev C++.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.09.2010, 20:57
Ответы с готовыми решениями:

Поделитесь ссылкой на урок по текстурированию в opengl
Поделитесь ссылкой на урок по текстурированию в opengl

Простой пример OpenGL
Здравствуйте! У меня Visual C++ 6. Так вот. У меня не запускаются не один...

Простой дом с камерой OpenGL, C++
Здравствуйте все, вообщем такая задача: Нужно сделать простой дом(пусть он...

Создаю игру с научным уколоном на C++/opengl. Как подключить openGL и добиться кроссплатформенности
Я читал про opengl - для его инициализации нужно создавать windows - окно. Для...

(2 главы перевода книги доступно) OpenGL Programming Guide, Version 4.3, 8th Edition - OpenGL
Продолжая тему с переводом книги...

12
Vladiator
1569 / 640 / 79
Регистрация: 24.02.2009
Сообщений: 9,269
09.09.2010, 21:11 2
в какой строке ошибка?

Добавлено через 2 минуты
вместо glFlush() попробуйте сделать так:
C++
1
2
glPopMatrix();
glutSwapBuffers();
1
Alexey R
5 / 5 / 1
Регистрация: 23.11.2009
Сообщений: 608
09.09.2010, 21:13  [ТС] 3
Цитата Сообщение от Kidalvь Посмотреть сообщение
в какой строке ошибка?
Не пишут, в какой строке ошибка и строка не подсвечивается.
Пишут:
[Linker error] undefined reference to `_imp____glutInitWithExit@12'
[Linker error] undefined reference to `_imp____glutCreateWindowWithExit@8'
[Linker error] undefined reference to `_imp____glutCreateMenuWithExit@8'
[Linker error] undefined reference to `glClear@4'
[Linker error] undefined reference to `glColor3f@12'
[Linker error] undefined reference to `glBegin@4'
[Linker error] undefined reference to `glVertex3f@12'
и так далее в том же духе.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <glut.h>
 
void DrawLine() 
{
    glClear(GL_COLOR_BUFFER_BIT);
    glColor3f(1.0, 1.0, 1.0);
    glBegin(GL_LINES);
    glVertex3f(0.25, 0.25, 0.0);
    glVertex3f(0.75, 0.75, 0.0);
    glEnd();
    glPopMatrix();
    glutSwapBuffers();
}
 
void Initialize() 
{
    glClearColor(0.0, 0.0, 0.0, 0.0);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
}
 
int main(int iArgc, char** cppArgv) 
{
    glutInit(&iArgc, cppArgv);
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
    glutInitWindowSize(250, 250);
    glutInitWindowPosition(200, 200);
    glutCreateWindow("Draw Line");
    Initialize();
    glutDisplayFunc(DrawLine);
    glutMainLoop();
    return 0;
}
0
Vladiator
1569 / 640 / 79
Регистрация: 24.02.2009
Сообщений: 9,269
09.09.2010, 21:17 4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <GL\glut.h>
 
void DrawLine(void) {
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glPushMatrix();
    glBegin(GL_LINES);
        glVertex3f(0.25, 0.25, 0.0);
            glVertex3f(0.75, 0.75, 0.0);
    glEnd();
    glPopMatrix();
    glutSwapBuffers();
}
 
int main(int argc, char **argv) {
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
    glutInitWindowPosition(200,200);
    glutInitWindowSize(250,250);
    glutCreateWindow("Draw Linel");
    gluPerspective(30.0, 1, 0.1, 1000.0);
    glutDisplayFunc(DrawLine);
    glutIdleFunc(DrawLine); 
    glutMainLoop();
    return 0;
}
вроде бы должно работать.

Добавлено через 1 минуту
возможно, не установлен GLUT/OpenGL
1
Alexey R
5 / 5 / 1
Регистрация: 23.11.2009
Сообщений: 608
09.09.2010, 21:24  [ТС] 5
Те же самые ошибки.
Может , Dev Cpp не поддерживает OpenGL?
0
Vladiator
1569 / 640 / 79
Регистрация: 24.02.2009
Сообщений: 9,269
09.09.2010, 21:25 6
Alexey R, какая ОС?
1
Alexey R
5 / 5 / 1
Регистрация: 23.11.2009
Сообщений: 608
09.09.2010, 21:27  [ТС] 7
Windows XP Pro SP2.
0
Vladiator
1569 / 640 / 79
Регистрация: 24.02.2009
Сообщений: 9,269
09.09.2010, 21:29 8
на Линуксе мог бы предложить скомпилировать такой командой:
Bash
1
g++ source.cpp -lglut -o program -lGL -lGLU
надо подключать параметры...
1
Alexey R
5 / 5 / 1
Регистрация: 23.11.2009
Сообщений: 608
09.09.2010, 21:36  [ТС] 9
У автора видеурока, похоже, Виста стоит.
надо подключать параметры...
Какие именно параметры подключить?
0
Vladiator
1569 / 640 / 79
Регистрация: 24.02.2009
Сообщений: 9,269
09.09.2010, 21:59 10
Цитата Сообщение от Alexey R Посмотреть сообщение
Какие именно параметры подключить?
у тебя как и какие - не знаю. У себя - lglut, lGL и lGLU
1
Alexey R
5 / 5 / 1
Регистрация: 23.11.2009
Сообщений: 608
09.09.2010, 23:11  [ТС] 11
Kidalvь, спасибо за помощь.
Проблема решилась с помощью создания проекта glut и подключения файла maun.cpp.
Кстати, как добавить архив к сообщению?
Размер 70 кБ.

Добавлено через 33 минуты
Небольше уточнение:
В проекте компилировался только файл main.cpp.
После подключения файла 1.cpp
появляются ошибки:
multiple definition of `main'
first defined here
ld returned 1 exit status
0
ggmann
20 / 20 / 7
Регистрация: 06.10.2008
Сообщений: 173
05.10.2010, 09:06 12
тебе нужно было всего лиш линковщику задать следуеще
opengl32
glu32
glut32

так я сделал в ИДЕ Code::Blocks также можна думаю и в Девке, а по тех уроках , так там на визуалке кажись пишеться, а визуалка подкдлючает все что нужно и не нужно
0
Bradart
0 / 0 / 0
Регистрация: 13.06.2015
Сообщений: 1
12.08.2015, 15:39 13
Та же проблема была. Найди Сервис/Параметры компилятора. Там есть два поля. Ставишь галочку у "Добавить эти команды к командной строке компановщика", а в соответствующее поле вставляешь следующее
"-lopengl32 -lglut32 -lglu32 -lwinmm -lgdi32".
Должно помочь.
0
12.08.2015, 15:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.08.2015, 15:39

Ошибки при подключение opengl, немного не связанные с opengl
#include &lt;windows.h&gt; #include &quot;stdafx.h&quot; #include &lt;gl/gl.h&gt; #include...

OpenGL С чего начать? Простой пример
Всем привет! С чего нужно начать, что скачать, что подключить.. для работы в...

Тормозит проект OpenGl
Дело в следующем. На думал сделать модель солнечной системы...Ну нашел текстуры...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru