让linux SDL2程序在没有安装SDL2的计算机上运行

Getting a linux SDL2 program to run on a computer that does not have SDL2 installed?

本文关键字:SDL2 计算机 安装 运行 linux 程序      更新时间:2023-10-16

我最近开发了一款小型SDL2游戏。游戏在我的电脑上运行良好,因为我安装了SDL、SDL_image、SDL_mixer和SDL_ttf。然而,每个下载游戏的人都没有安装SDL2和扩展,所以他们无法运行应用程序。如何使应用程序对没有安装SDL2的人可用?

您可以将-rpath选项传递给ld来指定动态库的搜索目录。

使用-rpath . (-Wl,-rpath .从GCC传递)将启用从可执行目录加载库。只要把适当的.so文件放在那里,它们就会被找到。

你可以静态地链接你的库,这样就不需要安装SDL了。

一种方法:

g++ -o program [sources.cpp] -Wl,-Bstatic -lSDL2 -lSDL2_image 
-lSDL2_mixer -lSDL2_ttf -Wl,-Bdynamic [dynamically linked libs]

注意:如果你使用SDL2,你必须使用SDL2构建的外围库,否则你会冒各种错误的风险。