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

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

05.12.2017, 12:47. Показов 1846. Ответов 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
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru