在未安装 SDL2 的计算机上将 linux SDL2 程序获取到 运行?
Getting a linux SDL2 program to run on a computer that does not have SDL2 installed?
最近开发了一款SDL2小游戏。游戏 运行 在我的电脑上运行良好,因为我安装了 SDL、SDL_image、SDL_mixer 和 SDL_ttf。但是下载游戏的各位都没有安装SDL2和扩展,所以无法运行应用。我怎样才能使应用程序即使对于没有安装 SDL2 的人也可用?
您可以静态 link 您的库,这样就不需要安装 SDL。
一种方法:
g++ -o program [sources.cpp] -Wl,-Bstatic -lSDL2 -lSDL2_image \
-lSDL2_mixer -lSDL2_ttf -Wl,-Bdynamic [dynamically linked libs]
注意:如果您使用 SDL2,则必须使用外围库的 SDL2 版本,否则您将面临各种错误的风险。
您可以将 -rpath
选项传递给 ld 以指定动态库的搜索目录。
使用-rpath .
(-Wl,-rpath .
从 GCC 传递)将允许从可执行文件的目录加载库。只需将适当的 .so
文件放在那里即可找到它们。
最近开发了一款SDL2小游戏。游戏 运行 在我的电脑上运行良好,因为我安装了 SDL、SDL_image、SDL_mixer 和 SDL_ttf。但是下载游戏的各位都没有安装SDL2和扩展,所以无法运行应用。我怎样才能使应用程序即使对于没有安装 SDL2 的人也可用?
您可以静态 link 您的库,这样就不需要安装 SDL。
一种方法:
g++ -o program [sources.cpp] -Wl,-Bstatic -lSDL2 -lSDL2_image \
-lSDL2_mixer -lSDL2_ttf -Wl,-Bdynamic [dynamically linked libs]
注意:如果您使用 SDL2,则必须使用外围库的 SDL2 版本,否则您将面临各种错误的风险。
您可以将 -rpath
选项传递给 ld 以指定动态库的搜索目录。
使用-rpath .
(-Wl,-rpath .
从 GCC 传递)将允许从可执行文件的目录加载库。只需将适当的 .so
文件放在那里即可找到它们。