Skip to content

Cannot build on three different Linux distros #132

@SM64User

Description

@SM64User

I used the 'Manual Building Guide' yesterday (March 12th) and, in short, it does not finish building on Linux (on Windows it builds the Windows version like usual, but has the issue described on issue #130 ). I tried three different Linux distros (in a QEMU/KVM VM (Virtual Machine)) and all failed to build with the same basic error, which is...

make: *** [Makefile:868: build/us_pc/src/pc/gfx/gfx_opengl.o] Error 1

the three distros I tried are... LMDE7 (Debian 13), Kubuntu 25.10, Manjaro (Arch based (manjaro-xfce-26.0.2-260206-linux618.iso)). for more details (which I copied from terminal text (from my attempt on Kubuntu 25.10 but it's all basically the same across all three)) see terminal text below...

~~~~
Compiling: src/pc/gfx/gfx_opengl.c -> build/us_pc/src/pc/gfx/gfx_opengl.o
src/pc/gfx/gfx_opengl.c: In function ‘create_framebuffer’:
src/pc/gfx/gfx_opengl.c:150:9: error: implicit declaration of function ‘glTexImage2DMultisample’; did you mean ‘glTexStorage3DMultisampleOES’? [-Wimplicit-function-declaration]
  150 |         glTexImage2DMultisample(GL_TEXTURE_2D_MULTISAMPLE, configAntiAliasing, GL_RGBA8, width, height, GL_TRUE);
      |         ^~~~~~~~~~~~~~~~~~~~~~~
      |         glTexStorage3DMultisampleOES
src/pc/gfx/gfx_opengl.c:150:80: error: ‘GL_RGBA8’ undeclared (first use in this function); did you mean ‘GL_RGBA’?
  150 |         glTexImage2DMultisample(GL_TEXTURE_2D_MULTISAMPLE, configAntiAliasing, GL_RGBA8, width, height, GL_TRUE);
      |                                                                                ^~~~~~~~
      |                                                                                GL_RGBA
src/pc/gfx/gfx_opengl.c:150:80: note: each undeclared identifier is reported only once for each function it appears in
src/pc/gfx/gfx_opengl.c:165:13: error: implicit declaration of function ‘glRenderbufferStorageMultisample’; did you mean ‘glRenderbufferStorageMultisampleNV’? [-Wimplicit-function-declaration]
  165 |             glRenderbufferStorageMultisample(GL_RENDERBUFFER, configAntiAliasing, GL_DEPTH_COMPONENT24, width, height);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |             glRenderbufferStorageMultisampleNV
src/pc/gfx/gfx_opengl.c:165:83: error: ‘GL_DEPTH_COMPONENT24’ undeclared (first use in this function); did you mean ‘GL_DEPTH_COMPONENT16’?
  165 |             glRenderbufferStorageMultisample(GL_RENDERBUFFER, configAntiAliasing, GL_DEPTH_COMPONENT24, width, height);
      |                                                                                   ^~~~~~~~~~~~~~~~~~~~
      |                                                                                   GL_DEPTH_COMPONENT16
src/pc/gfx/gfx_opengl.c: In function ‘blit_internal_framebuffer’:
src/pc/gfx/gfx_opengl.c:353:27: error: ‘GL_READ_FRAMEBUFFER’ undeclared (first use in this function); did you mean ‘GL_READ_FRAMEBUFFER_NV’?
  353 |         glBindFramebuffer(GL_READ_FRAMEBUFFER, internal_framebuffer);
      |                           ^~~~~~~~~~~~~~~~~~~
      |                           GL_READ_FRAMEBUFFER_NV
src/pc/gfx/gfx_opengl.c:354:27: error: ‘GL_DRAW_FRAMEBUFFER’ undeclared (first use in this function); did you mean ‘GL_DRAW_FRAMEBUFFER_NV’?
  354 |         glBindFramebuffer(GL_DRAW_FRAMEBUFFER, resolved_framebuffer);
      |                           ^~~~~~~~~~~~~~~~~~~
      |                           GL_DRAW_FRAMEBUFFER_NV
src/pc/gfx/gfx_opengl.c:355:9: error: implicit declaration of function ‘glBlitFramebuffer’; did you mean ‘glBlitFramebufferNV’? [-Wimplicit-function-declaration]
  355 |         glBlitFramebuffer(0, 0, internal_width, internal_height, 0, 0, internal_width, internal_height, GL_COLOR_BUFFER_BIT, GL_NEAREST);
      |         ^~~~~~~~~~~~~~~~~
      |         glBlitFramebufferNV
src/pc/gfx/gfx_opengl.c: In function ‘gfx_opengl_init’:
src/pc/gfx/gfx_opengl.c:953:18: error: ‘GL_MULTISAMPLE’ undeclared (first use in this function); did you mean ‘GL_MULTISAMPLES_NV’?
  953 |         glEnable(GL_MULTISAMPLE);
      |                  ^~~~~~~~~~~~~~
      |                  GL_MULTISAMPLES_NV
src/pc/gfx/gfx_opengl.c: In function ‘gfx_opengl_end_frame’:
src/pc/gfx/gfx_opengl.c:1035:31: error: ‘GL_READ_FRAMEBUFFER’ undeclared (first use in this function); did you mean ‘GL_READ_FRAMEBUFFER_NV’?
 1035 |             glBindFramebuffer(GL_READ_FRAMEBUFFER, internal_framebuffer);
      |                               ^~~~~~~~~~~~~~~~~~~
      |                               GL_READ_FRAMEBUFFER_NV
src/pc/gfx/gfx_opengl.c:1036:31: error: ‘GL_DRAW_FRAMEBUFFER’ undeclared (first use in this function); did you mean ‘GL_DRAW_FRAMEBUFFER_NV’?
 1036 |             glBindFramebuffer(GL_DRAW_FRAMEBUFFER, resolved_framebuffer);
      |                               ^~~~~~~~~~~~~~~~~~~
      |                               GL_DRAW_FRAMEBUFFER_NV
make: *** [Makefile:868: build/us_pc/src/pc/gfx/gfx_opengl.o] Error 1

p.s. I can get it to build on Linux if I do 'git checkout 7231d27' before I run the 'make' command as then it's using a game version (July 2025) before all of the major changes from Jan 2026 to date as recently is when there are bigger issues (building on Linux don't work and issue 130). I am actually playing the game on Mint 22.3-Xfce (Ubuntu 24.04 LTS based) but I built it on other distro's in a VM (even when I tried building the July 2025 working version on Manjaro, it complained about missing dependencies (when I copied it out of the VM to run on my main Mint 22.3-Xfce distro), but I just switched over to LMDE7 and built it there and no more problem).

for the record (just a general compliment to MorsGames to keep up the good work)... I consider this MorsGames version to be the best version of this game available as even the recent 'Ghostship', while solid overall, does not have the improved camera movement (and has some visual glitches of it's own (to state a obvious one, Mario's shadow flickers a lot where as your MorsGames works great)) yours does which makes yours superior as Ghostship's is still using it like the original games is as the right analog stick acts like the N64's yellow C buttons where you got to always move stick left or right back to center area, so it's essentially acting like the N64's setup (with tapping buttons) where as yours, which is improved, I can just press and hold left or right to spin the camera which is superior with modern control setups. so your control setup is basically perfect.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions