Problems Building The Game On Linux

Hello everyone, I am wondering why I have recently been having problems building Empty Epsilon on Linux. This is the output I get at the end of the make script:

CMakeFiles/EmptyEpsilon.dir/src/screens/gm/gameMasterScreen.cpp.o: In function `_ZN1PI13CollisionableEcvS_IT_EI4ZoneEEv':
gameMasterScreen.cpp:(.text._ZN1PI13CollisionableEcvS_IT_EI4ZoneEEv[_ZN1PI13CollisionableEcvS_IT_EI4ZoneEEv]+0x2e): undefined reference to `typeinfo for Zone'
collect2: error: ld returned 1 exit status
CMakeFiles/EmptyEpsilon.dir/build.make:7121: recipe for target 'EmptyEpsilon' failed
make[2]: *** [EmptyEpsilon] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/EmptyEpsilon.dir/all' failed
make[1]: *** [CMakeFiles/EmptyEpsilon.dir/all] Error 2
Makefile:149: recipe for target 'all' failed
make: *** [all] Error 2

I have tried building on Ubuntu 16.04 and Ubuntu 17.10, to no avail. If anyone could help me decipher this and explain whats going wrong and how to fix it that would be nice.

Comments

  • Thank you, it worked!
  • Hello,

    I have been having some trouble building the game for linux as well.

    I have been trying to follow the instructions.

    Issue #1 (I think I resolved it though) (happend to me when trying to build on Ubuntu 16.04 and Fedora 28

    I get a "permission denied (publickey)" when I try to run the command "git clone git@github.com:daid/SeriousProton.git"

    However I think I found a way to make it work by deviating from the instructions a little:
    "git clone https://github.com/daid/SeriousProton.git"

    The reason why I list this is to help others if they come across this error and also to provide some background I have for my second issue (in case they are somehow related).


    Issue #2 (happened with ubuntu 16.04)

    when running the "make" command. Everything went smoothly until it hit 99% Then I got the following error
    "
    [ 99%] Building C object CMakeFiles/EmptyEpsilon.dir/home/spaceship5/emptyepsilon/SeriousProton/src/lua/lbitlib.c.o
    [ 99%] Linking CXX executable EmptyEpsilon
    /usr/bin/ld: EmptyEpsilon: hidden symbol `__cpu_model' in /usr/lib/gcc/x86_64-linux-gnu/5/libgcc.a(cpuinfo.o) is referenced by DSO
    /usr/bin/ld: final link failed: Bad value
    collect2: error: ld returned 1 exit status
    CMakeFiles/EmptyEpsilon.dir/build.make:7147: recipe for target 'EmptyEpsilon' failed
    make[2]: *** [EmptyEpsilon] Error 1
    CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/EmptyEpsilon.dir/all' failed
    make[1]: *** [CMakeFiles/EmptyEpsilon.dir/all] Error 2
    Makefile:149: recipe for target 'all' failed
    make: *** [all] Error 2
    spaceship5@spaceship5:~/emptyepsilon/EmptyEpsilon/_build$
    "

    I tried to figure out what the _cpu_model problem was. I did not fully understand what I read online, but it appeared to be an Ubuntu 16.04 issue (which is why I switched to Fedora)


    Issue #3 (happened with Fedora 28)

    I then tried it with Fedora 28. I had the same issue with the git clone parf.

    When I got to the cmake command I got the following error:

    "
    [spaceship31@localhost _build]$ cmake .. -DSERIOUS_PROTON_DIR=$PWD/../../SeriousProton/
    -- The C compiler identification is GNU 8.0.1
    -- The CXX compiler identification is unknown
    -- Check for working C compiler: /usr/bin/cc
    -- Check for working C compiler: /usr/bin/cc -- works
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Detecting C compile features
    -- Detecting C compile features - done
    CMake Error at CMakeLists.txt:1 (project):
    No CMAKE_CXX_COMPILER could be found.

    Tell CMake where to find the compiler by setting either the environment
    variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path
    to the compiler, or to the compiler name if it is in the PATH.


    -- Configuring incomplete, errors occurred!
    See also "/home/spaceship31/emptyepsilon/EmptyEpsilon/_build/CMakeFiles/CMakeOutput.log".
    See also "/home/spaceship31/emptyepsilon/EmptyEpsilon/_build/CMakeFiles/CMakeError.log".
    "

    I was able to "fix this by running the following two lines:
    [spaceship31@localhost bin]$ sudo yum install gcc
    [spaceship31@localhost bin]$ sudo yum install gcc-c++

    That seemed to work. now running the cmake command worked.

    However, when I ran Empty Epsilon, the game became very laggy, I opened up my resource monitor and I noticed that only 1 out of the 4 cores I had was running (at 100%). The other three were barely above 0. My computer has an i7, 4GB of ram, so it should be able to handle EE just fine - but the laggyness basically causes the game to freeze for 1-2 seconds which can be quite unnerving.


    Has anyone seen these erros and has been able to go around them? Any help would be greatly appreciated - Thanks!
  • Only using a single core is expected (EE is single threaded). Most likely it's dog slow because you don't have hardware accelerated OpenGL drivers, and thus it is using software rendering.

    The 2nd issue seems to be some compiler+SFML combination issue: https://stackoverflow.com/questions/38727800/ld-linker-error-cpu-model-hidden-symbol
    Not seeing it at my builds. (Ubuntu has a tendency to break things in this area, sadly enough)
Sign In or Register to comment.