3 / 3 / 1
Регистрация: 01.05.2017
Сообщений: 37

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

05.12.2017, 12:47. Показов 1864. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru