Skip to content

error: ‘Window SDL_Window’ redeclared as different kind of entity #62

Description

@jaoswald

I'm trying to build Executor on Ubuntu 24.04.3 for x86-64.
I've installed Ubuntu packages libsdl1.2-dev and qt6-base-dev to fulfill the apparent build requirements.

libsdl1.2-dev (2.30.0+dfsg-1ubuntu3.1)
qt6-base-dev:amd64 (6.4.2+dfsg-21.1build5)

[ 93%] Building CXX object src/config/front-ends/sdl/CMakeFiles/front-end-sdl.dir/sdlscrap.cpp.o
In file included from /home/jao/executor/src/config/front-ends/sdl/sdlscrap.cpp:14:
/home/jao/executor/src/config/front-ends/sdl/syswm_vars.h:20:15: error: ‘Window SDL_Window’ redeclared as different kind of entity
   20 | extern Window SDL_Window;
      |               ^~~~~~~~~~
In file included from /home/jao/executor/src/config/front-ends/sdl/syswm_vars.h:14:
/usr/include/SDL/SDL_syswm.h:125:27: note: previous declaration ‘typedef struct SDL_Window SDL_Window’
  125 | typedef struct SDL_Window SDL_Window;
      |                           ^~~~~~~~~~

I'm not sure if this is an artifact of the SDL version, but is seems that there is a conflict between syswm_vars.h declaration of SDL_Window as a global variable and the SDL_syswm.h use of that name to declare the structure type.

I was able to work around this by renaming the variable in syswm_vars.h to gSDL_Window and updating the references

    modified:   src/config/front-ends/sdl/sdlscrap.cpp
modified:   src/config/front-ends/sdl/syswm_map.cpp
modified:   src/config/front-ends/sdl/syswm_vars.h

$ uname -a
Linux ubuntu 6.8.0-87-generic #88-Ubuntu SMP PREEMPT_DYNAMIC Sat Oct 11 09:28:41 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 24.04.3 LTS
Release: 24.04
Codename: noble

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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