Super Meat Boy
Super Meat Boy > 総合掲示板 > トピックの詳細
undefined symbol: SDL_GetBasePath
I'm getting this output when I try to run the game (in linux). It was working alright yesterday.. I think it may have something to do with an game update (or steam update). Can somebody help?

Game update: AppID 40800 "Super Meat Boy", ProcID 3309, IP 0.0.0.0:0
Super Meat Boy: Installed in '/home/edju/.local/share/Steam/SteamApps/common/Super Meat Boy'.
Super Meat Boy: Using amd64 version.
./amd64/SuperMeatBoy: symbol lookup error: ./amd64/SuperMeatBoy: undefined symbol: SDL_GetBasePath
Game removed: AppID 40800 "Super Meat Boy", ProcID 3309
< >
1-11 / 11 のコメントを表示
Sounds like it's linking to the wrong version of SDL. Make sure you have SDL 2 installed. Post the output of ldd on that binary.
icculus  [開発者] 2013年11月10日 17時06分 
Specifically, make sure you have SDL 2.0.1 installed (it's not in 2.0.0).
This is the output of ldd. I think this is probably happening because I'm using fedora instead of ubuntu. The version of SDL in fedora repositories is still 2.0.0 .

linux-vdso.so.1 => (0x00007fffeddfe000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000003affc00000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003b00000000)
libSDL2-2.0.so.0 => /lib64/libSDL2-2.0.so.0 (0x00007f3fe5855000)
libopenal.so.1 => /lib64/libopenal.so.1 (0x0000003b03c00000)
libmariadb.so.1 => /home/edju/.local/share/Steam/SteamApps/common/Super Meat Boy/amd64/./libmariadb.so.1 (0x00007f3fe5600000)
libsteam_api.so => /home/edju/.local/share/Steam/SteamApps/common/Super Meat Boy/amd64/./libsteam_api.so (0x00007f3fe53f0000)
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x0000003b04400000)
libm.so.6 => /lib64/libm.so.6 (0x0000003b00800000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000003b01000000)
libc.so.6 => /lib64/libc.so.6 (0x0000003aff800000)
/lib64/ld-linux-x86-64.so.2 (0x0000003aff400000)
librt.so.1 => /lib64/librt.so.1 (0x0000003b00c00000)
I have compiled SDL2.0.1 from code and installed it in /usr/local/lib. How can I tell programs to run with this libraries instead of the ones they are currently using?
Well, I solved it myself... I just run export LD_LIBRARY_PATH=/usr/local/lib before running the game executeble (or the steam client) . Thank you guys!
icculus  [開発者] 2013年11月10日 19時35分 
eduardomezencio の投稿を引用:
Well, I solved it myself... I just run export LD_LIBRARY_PATH=/usr/local/lib before running the game executeble (or the steam client) . Thank you guys!

Also, if you launch from Steam, Steam will make sure its included copy of SDL 2.0.1 gets used.
icculus  [開発者] 2013年11月10日 19時36分 
(We're talking about better ways to solve this in SDL itself at some point too, fwiw.)
But where is this included copy of SDL 2.0.1 located? I'm asking because I was running the game from steam and it was not able to run the game... I would like to see if my steam client do really have this library included because, if that's the case, it was not being used for some reason. Not that I really need to, because the game is already working but I just want to understand better what happened.
最近の変更はeduardomezencioが行いました; 2013年11月10日 20時19分
icculus  [開発者] 2013年11月10日 21時20分 
eduardomezencio の投稿を引用:
But where is this included copy of SDL 2.0.1 located? I'm asking because I was running the game from steam and it was not able to run the game... I would like to see if my steam client do really have this library included because, if that's the case, it was not being used for some reason. Not that I really need to, because the game is already working but I just want to understand better what happened.

Restart Steam if you haven't for a few weeks to make sure it picks up the latest Steam Runtime.

Then look in $HOME/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/ ... there's a whole bunch of libs in there.

(path is different for x86_64, but same idea)

Steam _should_ be using those when you launch games, but some distros disable them, because reasons.

--ryan.

I have the same problem. I thought it came from my reinstallation of Steam, but it is, as I initialy thought a problem appeared in an update (of Steam or of the game).

As I've already said previously, Steam doesn't seem to provide the 64bit version of SDL2.0 and I don't really want to compile or install testing version of SDL 2.0.1.

If I look at where I have 64bit version of SDL2, I only find:
$ locate -i libSDL2-2.0.so.0 | grep 64
/home/fedoski/.local/share/Steam/SteamApps/common/A Virus Named TOM/lib64/libSDL2-2.0.so.0
/home/fedoski/.local/share/Steam/SteamApps/common/Capsized/lib64/libSDL2-2.0.so.0
/home/fedoski/.local/share/Steam/SteamApps/common/FEZ/lib64/libSDL2-2.0.so.0
/home/fedoski/.local/share/Steam/SteamApps/common/Spirits/x86_64/libSDL2-2.0.so.0
/home/fedoski/bin/jeux/Torchlight/Torchlight/lib64/libSDL2-2.0.so.0
/usr/lib64/libSDL2-2.0.so.0
/usr/lib64/libSDL2-2.0.so.0.0.0

Steam is only providing:
/home/fedoski/.local/share/Steam/ubuntu12_32/libSDL2-2.0.so.0

I'm into the Steam beta program, using Fedora 19 64bit.

The game is working if I copy the 32bit version of libSDL2 into the same directory than the 32bit version of SuperMeatBoy and it's working. But none of the 64bit version of libSDL2 that I listed before works with the 64bit version of SuperMeatBoy.
In fact, we just have to set STEAM_RUNTIME to 1 to make it work. The next version of Steam in RPMFusion will set it to 1 automaticaly.
< >
1-11 / 11 のコメントを表示
ページ毎: 15 30 50

Super Meat Boy > 総合掲示板 > トピックの詳細
投稿日: 2013年11月10日 15時25分
投稿数: 11