Skip to content

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

@jaoswald

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

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