为什么在编译项目时出现编译错误?

问题描述

编译用C ++编写的SDL2项目时出现错误

编译:

g++ main.cpp -o main -lSSGL

错误

/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/libSSGL.so: undefined reference to `SDL_RenderFillRectF'
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/libSSGL.so: undefined reference to `SDL_RenderDrawRectF'
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/libSSGL.so: undefined reference to `SDL_SetRenderDrawColor'
collect2: error: ld returned 1 exit status

Makefile:

CC = g++
CFLAGS = -std=c++14
LIBS = -lsdl2 \
       -lsdl2_ttf \
       -lsdl2_image \
       -lsdl2_mixer \
       `sdl2-config --cflags --libs`
CPP_FILES = *.cpp
WARRNINGS = -Wall -Werror
LIB = libSSGL.so
O_FILES = *.o
HPP_FILES = *.hpp
SSGL_PATH = /usr/include/SSGL
LIB_PATH = /usr/lib/x86_64-linux-gnu/

all:
    $(CC) -c $(CFLAGS)  $(WARRNINGS) $(CPP_FILES) $(LIBS)
    $(CC) -shared $(CFLAGS) $(O_FILES) -o $(LIB)

install:
    cp -r $(LIB)  $(LIB_PATH)
    mkdir /usr/include/SSGL
    cp -r $(HPP_FILES) $(SSGL_PATH)
    make clean

uninstall:
    rm -rf $(SSGL_PATH)
    rm -rf /usr/lib/x86_64-linux-gnu/$(LIB)

clean:
    rm -rf $(O_FILES) $(LIB)

在项目文件中检测到所有包含项。

但是我不明白为什么会有这些错误

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)