Неопределенная ссылка на IMG_Load (g ++) - PullRequest
0 голосов
/ 21 сентября 2019

Эй, когда я звоню SDL_Load();, компилятор выдает мне ошибку.Я компилирую с g ++ под Ubuntu.Я установил libsdl2-2.0 и libsdl2-dev и включил SDL2/SDL.h.Когда я пытаюсь включить SDL2/SDL_Image.h, компилятор говорит, что каталог не найден.Мой Makefile (который все еще очень плохо сделан, так как я не очень много знаю об этом) выглядит так:

output : main.o StateMachine.o MainMenuState.o GameState.o ResourceHolder.o
    g++ `pkg-config --cflags --libs sdl2` -Wall -o main.o StateMachine.o MainMenuState.o GameState.o ResourceHolder.o output

main.o: main.cpp
    g++ -c main.cpp

StateMachine.o: StateMachine.cpp
    g++ -c StateMachine.cpp

MainMenuState.o: MainMenuState.cpp
    g++ -c MainMenuState.cpp

GameState.o: GameState.cpp
    g++ -c GameState.cpp

ResourceHolder.o: ResourceHolder.cpp
    g++ -c ResourceHolder.cpp

Я также пробовал sdl2-config --cflags --libs вместо pkg-config --cflags --libs sdl2, но он не меняетсячто-нибудь.Под /usr/lib/x86_64-linux-gnu я обнаружил
libSDL-1.2.so.0 libSDL-1.2.so.0.11.4 libSDL2-2.0.so libSDL2-2.0.so.0 libSDL2-2.0.so.0.8.0 libSDL2.a libSDL2main.a libSDL2.so libSDL2_test.a libSDL_image-1.2.so.0 libSDL_image-1.2.so.0.8.4
Я могу использовать другие части SDL, например, для создания окна.Я попробовал -lSDL2_Image и несколько разных флагов.Было бы здорово, если бы кто-нибудь мог мне помочь, потому что я читаю посты с 6 часов, просто чтобы заставить это работать.Спасибо за любые ответы

Редактировать: Мой Makefile теперь выглядит так

output : main.o StateMachine.o MainMenuState.o GameState.o ResourceHolder.o
    g++ `sdl2-config --libs --sdl2-image` -lSDL2_Image -Wall -o main.o StateMachine.o MainMenuState.o GameState.o ResourceHolder.o output

main.o: main.cpp
    g++ -c main.cpp

StateMachine.o: StateMachine.cpp
    g++ -c StateMachine.cpp

MainMenuState.o: MainMenuState.cpp
    g++ -c MainMenuState.cpp

GameState.o: GameState.cpp
    g++ -c GameState.cpp

ResourceHolder.o: ResourceHolder.cpp
    g++ -c ResourceHolder.cpp `sdl2-config --cflags --libs --sdl2-image`
...