使用 SDL 1.2 和 C 创建可传输可执行文件时遇到问题

Trouble creating a transferable executable with SDL 1.2 and C

我在使用 SDL 1.2 和 C 编译可在另一台机器上运行的可执行文件时遇到了问题。我一直在使用 makefile 从 Ubuntu 编译它。我希望能够将“bin.zip”发送给同学,其中包含“SDL.dll”和“SDL_ttf.dll”以及我为之编译的可执行文件“prog”他们。

我希望他们能够 运行 从他们自己的 Ubuntu 桌面 (虚拟机,如果相关) 和不需要先自己安装 libsdl1.2debianlibsdl-ttf2.0-0,因为我包含了 DLL。

请注意,一旦安装了这些库,他们就可以运行。

我的项目结构在编译时是这样的:

我的 makefile 如下所示:

CC=gcc

CFLAGS=-c -Wall `sdl-config --cflags`
LDFLAGS=`sdl-config --libs` -lSDL_ttf
SOURCES=src/main.c src/toolbox.c src/game.c
OBJECTS=$(SOURCES:.c=.o)
EXECUTABLE=bin/prog

.PHONY: clean
all: $(SOURCES) $(EXECUTABLE)

$(EXECUTABLE): $(OBJECTS)
    $(CC) $(OBJECTS) $(LDFLAGS) -o $@
.c.o:
    $(CC) $(CFLAGS) $< -o $@

clean:
    rm -f $(OBJECTS) $(EXECUTABLE)

我是不是遗漏了什么明显的东西?编辑:(是的,我是)

是的,我遗漏了一些明显的东西:DLL 专门用于 Windows

现在,至于让可执行文件在不安装所需库的情况下工作,我仍然没有做到(在我的情况下,静态链接没有成功),但至少我学到了一些东西。

如果我尝试交叉编译 Windows,我会尝试更新它。