ptitSeb / Serious-Engine

A port to the OpenPandora (and working fine on plain Linux) of the open source version of a game engine developed by Croteam for the classic Serious Sam games. Status: Working (for both FE and SE).

Home Page:https://pyra-handheld.com/boards/threads/serious-sam-first-encounter.77225/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

undefined symbol: CGhostBusterRay_DLLClass

PaddyMac opened this issue · comments

When starting the game on Linux or FreeBSD, at the Croteam logo, I see the error message:

CUnixDynamicLoader error: /opt/ssam-tse/Bin/libEntities.so: undefined symbol: CGhostBusterRay_DLLClass

If I press enter, the Croteam logo repeats. If I press escape, it will skip the logo screen. The error appears again after starting a game, but nothing special has to be done to get past it.

Strange.

What compiler version are you using?

I'm currently using gcc 9.1.0, but I've experienced this same issue with earlier versions of gcc on Linux and Clang on FreeBSD.

I only found one reference to this anywhere in the source code. It occurs in Sources/Entities/GhostBusterRay.h on line 19:

extern "C" DECL_DLL CDLLEntityClass CGhostBusterRay_DLLClass;

I noticed that this exists in rcgordon's fork of the code, but it is not in the official Croteam code. I'm only a novice, so I don't know what I might be able to do, but maybe that can help point us in the right direction.

I'm looking at this. It's possible it's just an left-over from some old version of the engine, I'll check if I can remove the reference.

So, I just pushed a commit that remove the generated .cpp/.h/_tables.h file for the GostBusterRay entitie. It's not used and it's not builded anyway.
I'm still unsure why you have some access to it, because you will now see no reference to this. It's not used at all (the only line referencing GhostBusterRay.es in the CMakeList.txt is commented out).

The other strange thing is that you seem to be launching "Serious Sam: The Second Encounter" with libEntities.so, where it should be libEntitiesMP.so. Check that you do have ModEXT.txt data file (you can find it on the root of the repo) containting "MP" with your SS:TSE data.