Super Meat Boy
Super Meat Boy > 일반 토론 > 제목 정보
eduardomezencio 2013년 11월 10일 오후 3시 25분
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
< >
11개 중 1-11 표시중
jazztickets 2013년 11월 10일 오후 3시 46분 
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일 오후 5시 06분 
Specifically, make sure you have SDL 2.0.1 installed (it's not in 2.0.0).
eduardomezencio 2013년 11월 10일 오후 6시 21분 
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)
eduardomezencio 2013년 11월 10일 오후 6시 37분 
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?
eduardomezencio 2013년 11월 10일 오후 7시 07분 
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일 오후 7시 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일 오후 7시 36분 
(We're talking about better ways to solve this in SDL itself at some point too, fwiw.)
eduardomezencio 2013년 11월 10일 오후 8시 18분 
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일 오후 8시 19분
icculus  [개발자] 2013년 11월 10일 오후 9시 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.

[Linux] SkiskiLive 2013년 11월 11일 오전 1시 25분 
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.
[Linux] SkiskiLive 2013년 11월 11일 오후 12시 52분 
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.
< >
11개 중 1-11 표시중
페이지당: 15 30 50

Super Meat Boy > 일반 토론 > 제목 정보
게시된 날짜: 2013년 11월 10일 오후 3시 25분
게시글: 11