我想将 sdl 力反馈用于我的操纵杆并在 上使用它dolphin-emu
。
我需要 1.3 版 sdl 库,但只有 1.2 版可用。我尝试构建它们,但没有成功。
有人可以帮忙吗?
答案1
最好的办法是修补最新的稳定 sdl 1.2源代码,并使用 sdl1.2 获得某种力反馈效果。这是在下一个稳定版本的 sdl 发布之前的临时措施,但可能适合您的目的。
但是,最好将编译后的版本安装在 中,/opt
而不是/usr
或等路径位置/usr/local
。这样,您仍然可以保留原始版本libsdl1.2debian
,而只通过使用 来调用编译后的版本LD_LIBRARY_PATH
(请参阅后面的解释)。
首先,获取依赖项
sudo apt-get build-dep libsdl1.2
sudo apt-get install build-essential checkinstall
要build-dep
使其工作,请转到软件源并选中复选框以启用源代码。然后运行sudo apt-get update
,任何build-dep
命令都应该有效。
列出了依赖项的完整列表这里提供有关编译的更多信息。
现在,下载sdl 源代码并解压,然后从下载补丁icculus.org,提取补丁,并将其移动到 sdl 源代码文件夹,然后从该文件夹运行:
patch -p1 < sdl_1.2-haptic.diff
接下来运行
./configure --prefix=/opt/sdl-1.2 && make
没有必要添加--enable-haptic
(触觉是用于力反馈的术语),因为补丁应该已经启用了它。有关触觉的更多信息,请参阅这里和这里。
要将其安装在/opt
(或用 configure 指定的位置),请sudo checkinstall
从同一文件夹运行。
要使用此版本的 sdl,您需要在这样的包装器中运行您的游戏:
#!/bin/bash
export LD_LIBRARY_PATH=/opt/sdl-1.2/lib:$LD_LIBRARY_PATH
cd /game/folder
game
exit 0
要检查是否加载了正确的 sdl 版本,请在终端中运行
export LD_LIBRARY_PATH=/opt/sdl-1.2/lib:$LD_LIBRARY_PATH
然后ldd
在你知道使用 sdl 的游戏上运行:
ldd /usr/local/bin/rott
这表明它正在使用您编译的 sdl:
libSDL-1.2.so.0 => /opt/sdl-1.2/lib/libSDL-1.2.so.0 (0xb7695000)
力反馈效果会有很大差异,有时可能根本不存在,但这是目前获得某些效果的唯一方法。据报道,它可以与 、 的开源端口配合使用Freespace2
,FreespaceOpen
这个帖子显示与基于 Linux 的系统相关的内容(而不是其所暗示的 Mac OS X)。