gpt4 book ai didi

c - 依赖 SDL 的应用程序的 Makefile 编译严重失败

转载 作者:太空宇宙 更新时间:2023-11-04 02:12:47 25 4
gpt4 key购买 nike

这是生成文件:

生成文件.win

CC=gcc
CFLAGS=-Wall -ID:\dev\include -LD:\dev\lib -LD:\dev\bin
LIBS=-l mingw32 -l SDLmain -l SDL
TARGET=-mwindows
EXECUTABLE=main.exe

all:
$(CC) $(CFLAGS) $(LIBS) $(TARGET) main.c -o $(EXECUTABLE)

clean:
rm *o

(libSDL和libSDLmain在D:\dev\lib中。SDL.dll在D:\dev\bin中。)

这是代码

#include <SDL/SDL.h>

int main(int argc, char* argv[])
{
if (SDL_Init(SDL_INIT_EVERYTHING) < 0)
printf("Could not initialize!");

SDL_Surface* screen = SDL_SetVideoMode(640, 480, 16, SDL_HWSURFACE|SDL_DOUBLEBUF);
if (!screen) printf("Could not load video!");

int done = 0;
SDL_Event event;

while(!done)
{
while(SDL_PollEvent(&event))
{
if (event.type == SDL_QUIT)
done = 1;
}

SDL_Flip(screen);
}

SDL_FreeSurface(screen);
printf("Exited cleanly");

return 0;
}

我用这个命令构建它:

mingw32-make -f makefile.win

mingw32-make 将 makefile 翻译成:

gcc -Wall -ID:\dev\include -LD:\dev\lib -LD:\dev\bin -l mingw32 -l SDLmain -l SD
L -mwindows main.c -o main.exe

没关系。

但后来我得到了所有迷人的错误:

main.c:(.text+0x42): undefined reference to `SDL_SetVideoMode'
main.c:(.text+0x7c): undefined reference to `SDL_PollEvent'
main.c:(.text+0x8b): undefined reference to `SDL_Flip'
main.c:(.text+0x9c): undefined reference to `SDL_FreeSurface'
collect2: ld returned 1 exit status
mingw32-make: *** [all] Error 1

所以,因为我正在链接 mingw32、SDL 和 SDLmain。我正在将目录添加到 SDL header 中。为什么我会收到错误?

最佳答案

您应该将库标志放在最后:

gcc -o main.exe main.c -lSDL -lSDLmain -lmingw32

关于c - 依赖 SDL 的应用程序的 Makefile 编译严重失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11654567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com