Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
3 / 3 / 1
Регистрация: 01.05.2017
Сообщений: 37

Не могу скомпилировать проект компилятором g++ (SFML, Debian 9)

05.12.2017, 12:47. Показов 1872. Ответов 1

Студворк — интернет-сервис помощи студентам
Установлена библиотека libsfml-dev 2.4.1

Пример программы переписал из ролика на youtube (Создание 3d игр на C++: Minecraft), сохранил используемые изображения в директориях:
~/C++/MineIsland/release и ~/C++/MineIsland/release/Blocks

При вводе команды для компиляции:
Bash
1
g++ -c /home/denis/C++/MineIsland/main.cpp
Выходят ошибки:
Bash
1
2
3
4
5
6
7
/home/denis/C++/MineIsland/main.cpp: In function ‘int main()’:
/home/denis/C++/MineIsland/main.cpp:21:130: error: ‘gluBuild2DMipmaps’ was not declared in this scope
 tSize().x, image.getSize().y, GL_RGBA, GL_UNSIGNED_BYTE, image.getPixelsPtr());
                                                                              ^
/home/denis/C++/MineIsland/main.cpp:31:38: error: ‘gluPerspective’ was not declared in this scope
  gluPerspective(90.f, 1.f, 1.f, 500.f);
                                      ^
Сам код программы:
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#include <SFML/Graphics.hpp>
#include <SFML/OpenGL.hpp>
#include <iostream>
 
using namespace sf;
 
int main(){
    RenderWindow window(VideoMode(1280,900), "Mineisland");
 
    Texture t;
    t.loadFromFile("resources/bg.jpg");
    Sprite background(t);
 
    GLuint texture = 0;
    {
        Image image;
        image.loadFromFile("resources/Blocks/dirt.jpg");
 
        glGenTextures(1, &texture);
        glBindTexture(GL_TEXTURE_2D, texture);
        gluBuild2DMipmaps(GL_TEXTURE_2D, GL_RGBA, image.getSize().x, image.getSize().y, GL_RGBA, GL_UNSIGNED_BYTE, image.getPixelsPtr());
        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
    }
 
    glEnable(GL_DEPTH_TEST);
    glDepthMask(GL_TRUE);
    glClearDepth(1.f);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluPerspective(90.f, 1.f, 1.f, 500.f);
    glEnable(GL_TEXTURE_2D);
 
    Clock clock;
 
    while (window.isOpen())
    {
        Event event;
        while (window.pollEvent(event))
        {
            if (event.type == Event::Closed)
                window.close();
        }
        float time = clock.getElapsedTime().asSeconds() * 100;
        float size = 20.f;
 
        window.pushGLStates();
        window.draw(bg);
        window.popGLStates();
 
        glClear(GL_DEPTH_BUFFER_BIT);
 
        glMatrixMode(GL_MODELVIEW);
        glLoadIdentity();
        glTranslatef(0, 0, -100);
        glRotatef(time, 50, 50, 0);
 
        glBindTexture(GL_TEXTURE_2D, texture);
        glBegin(GL_QUADS);
 
            glTexCoord2f(0, 0); glVertex3f(-size, -size, -size);
            glTexCoord2f(1, 0); glVertex3f(size, -size, -size);
            glTexCoord2f(1, 1); glVertex3f(size, size, -size);
            glTexCoord2f(0, 1); glVertex3f(-size, size, -size);
 
            glTexCoord2f(0, 0); glVertex3f(size, -size, size);
            glTexCoord2f(1, 0); glVertex3f(-size, -size, size);
            glTexCoord2f(1, 1); glVertex3f(-size, size, size);
            glTexCoord2f(0, 1); glVertex3f(size, size, size);
 
            glTexCoord2f(0, 0); glVertex3f(-size, -size, size);
            glTexCoord2f(1, 0); glVertex3f(-size, -size, -size);
            glTexCoord2f(1, 1); glVertex3f(-size, size, -size);
            glTexCoord2f(0, 1); glVertex3f(-size, size, size);
 
            glTexCoord2f(0, 0); glVertex3f(size, -size, -size);
            glTexCoord2f(1, 0); glVertex3f(size, -size, size);
            glTexCoord2f(1, 1); glVertex3f(size, size, size);
            glTexCoord2f(0, 1); glVertex3f(size, size, -size);
 
            glTexCoord2f(0, 0); glVertex3f(-size, -size, size);
            glTexCoord2f(1, 0); glVertex3f(size, -size, size);
            glTexCoord2f(1, 1); glVertex3f(size, -size, -size);
            glTexCoord2f(0, 1); glVertex3f(-size, -size, -size);
 
            glTexCoord2f(0, 0); glVertex3f(-size, size, -size);
            glTexCoord2f(1, 0); glVertex3f(size, -size, -size);
            glTexCoord2f(1, 1); glVertex3f(size, size, size);
            glTexCoord2f(0, 1); glVertex3f(-size, size, size);
 
            glEnd();
 
            window.display();
    }
 
    glDeleteTextures(1, &texture);
 
    return 0;
}
Около часа пытался найти решение проблемы в интернете, но ничего полезного найти не смог. Заранее спасибо за помощь!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.12.2017, 12:47
Ответы с готовыми решениями:

Не получается скомпилировать проект SFML (2.3.2)
Причем именно Release не получается, Debug исправно работает :с Ошибка 19 error LNK2001: неразрешенный внешний символ...

Не могу скомпилировать проект
jdk есть. Питон и до этого был

Не могу скомпилировать проект в MASM
Читаю книгу Калашникова по ассемблеру, и первая программа: cseg segment org 100h start: mov ah, 9h lea dx, Mess

1
3 / 3 / 1
Регистрация: 01.05.2017
Сообщений: 37
06.12.2017, 12:52  [ТС]
Все таки смог сам решить проблему.

Для этого я скачал множество разных пакетов, которых у меня, не было изначально:
freeglut3, freeglut3-dev, binutils-gold, g++ cmake, libglew-dev, mesa-common-dev, build-essential, ibglm-dev, mesa-utils

Далее я подключил дополнительные библиотеки к проекту:
C++
1
2
#include <GL/gl.h>
#include <GL/freeglut.h>
И последним делом я все это скомпилировал и запустил, добавив некоторые изменения в команды:
Bash
1
2
3
g++ -c /home/denis/C++/MineIsland/main.cpp
g++ /home/denis/main.o -o sfml-app -lsfml-graphics -lsfml-window -lsfml-system -lGL -lGLU -lglut -lGLEW
./sfml-app
Правда, у кубика неправильно отображаются некоторые стороны (некоторые текстуры вылазят вперед тех текстур, что находятся перед ними

Решение проблемы искал нестандартным для меня методом - искал все, что взбредет в мою голову.
Надеюсь, что это кому-нибудь поможет
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.12.2017, 12:52
Помогаю со студенческими работами здесь

Не могу скомпилировать проект в VS 2017 Community
Создаю библиотеку Class Library (.Net Standard). Framework 4.5.2 using (SqlConnection conn = new SqlConnection()) Получаю ошибки...

Не могу скомпилировать проект в Intellij IDEA
Где выбор компиляции в меню (см. скрин) ?

21 видео урок по Ассемблеру (Assembler) - не могу скомпилировать первый проект
Всем привет. Видео по ассемблеру знакомое наверно многим от нашего брата http://exevideo.net/ BAZRUDA, но не могу понять, почему не...

как скомпилировать исходник на Python компилятором gcc?
Друзья! Знает кто-нибудь? А то в инете нет ничё, какие-то скрипты, интерпретаторы... Просто я в книге по GCC прочёл: &quot;...друrие...

C++ SFML для Code::Blocks Debian Gnome Stretch
При выполнении программы с использованием SFML выводится окно терминала вместо создания окна и создания круга ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru