【发布时间】:2015-10-01 20:04:03
【问题描述】:
我正在开发一个用于 Linux 环境的 C 项目(使用 gcc 编译)。我正在使用两个库:
我的CFLAGS 变量:
CFLAGS = -std=c99 -pedantic-errors -Wall -g -lm `sdl-config --cflags` -ISDL_img -ISDL_ttf
如您所见,我包含了这两个库目录。
我的 gcc 命令包括以下内容:
`sdl-config --libs` -lSDLmain -lSDL -lSDL_img -lSDL_ttf
最后,在我的项目中,我有以下内容:
#include "SDL_ttf.h"
#include "SDL_image.h"
由于某种原因,我收到以下类型的错误:
undefined reference to 'IMG_Load'
为什么?
编辑:
all: Chess.o Commons.o Console.o Controls.o Coords.o File.o GameState.o GUI.o Keyboard.o List.o Minimax.o Move.o Piece.o SettingsState.o Slots.o Square.o Str.o
gcc $^ -lm -std=c99 -pedantic-errors -g -o Chess `sdl-config --libs` -lSDLmain -lSDL -lSDL_img -lSDL_ttf
【问题讨论】:
-
在 makefile 中显示完整的编译命令并运行该命令和完整的错误上下文。
-
已编辑。至于完整的错误上下文,我认为不需要 - 只是一堆
undefined reference错误(以及其他一些不相关的错误) -
@hibyte,您可能是对的,错误上下文没有帮助,但拒绝提供帮助的人的信息请求对您没有好处。如果您可以确定哪些信息是相关的,哪些信息不相关,那么您可能不需要提出这个问题。
-
SDL_Img库(可能包含IMD_Load符号)在哪里? -
我自己,我会在错误消息中查找抱怨无法找到
libSDL_img的消息。这不仅很容易解释问题,而且在我的环境中,您似乎想要的库拼写为libSDL_image(与与该库相关的任何目录的名称没有任何必要的关系)。