SFML не может использовать графику

Рейтинг: 0Ответов: 1Опубликовано: 08.04.2023

Пытаюсь освоить библиотеку SFML, геометрические примитивы. Получаю ошибку при компиляции (использую make)

C:/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lsfml-figures-d
collect2.exe: error: ld returned 1 exit status

В main файле нету доступа к sf::Color, вот код ( figures.cpp ):


#include <SFML/Graphics.hpp>

using namespace sf;

int main()
{
    RenderWindow window(VideoMode(600, 600), "figures");
    window.setFramerateLimit(60);

    Event event;

    while (window.isOpen())
    {
        while (window.pollEvent(event))
        {
            if (event.type == Event::Closed) window.close();
        }

        window.clear();
        CircleShape CircleShape(50);
        CircleShape.setFillColor(Color::Red);
        window.display();
    }

    return 0;
}

make-файл:

all:
    g++ -c figures.cpp -I src/include 
    g++ -o figures figures.o -L src/lib -l sfml-graphics-d -l sfml-figures-d  -l sfml-system-d -l opengl32 -l winmm -l gdi32

Если я не добавляю -l sfml-figures-d, то выходит такая ошибка:

figures.o:figures.cpp:(.text+0xa2): undefined reference to `_imp___ZN2sf9VideoModeC1Ejjj'
figures.o:figures.cpp:(.text+0x10b): undefined reference to `_imp___ZN2sf6Window17setFramerateLimitEj'
figures.o:figures.cpp:(.text+0x11d): undefined reference to `_imp___ZNK2sf6Window6isOpenEv'
figures.o:figures.cpp:(.text+0x13d): undefined reference to `_imp___ZN2sf6Window9pollEventERNS_5EventE'
figures.o:figures.cpp:(.text+0x15d): undefined reference to `_imp___ZN2sf6Window5closeEv'
figures.o:figures.cpp:(.text+0x182): undefined reference to `_imp___ZN2sf6Window5closeEv'
figures.o:figures.cpp:(.text+0x1ff): undefined reference to `_imp___ZN2sf6Window7displayEv'
collect2.exe: error: ld returned 1 exit status
make: *** [Makefile:3: all] Error 1

Версия SFML - 2.5.1 (x32)

Версия компилятора - 7.3.0 (g++ mingw x32)

ОС - Windows 10

Использую VS Code

Ответы

▲ 0Принят

make-файл:

all:
    g++ -c figures.cpp -I src/include 
    g++ -o figures figures.o -L src/lib -l sfml-graphics-d -l sfml-window-d  -l sfml-system-d -l opengl32 -l winmm -l gdi32