xLightsSequencer / xLights

xLights is a sequencer for Lights. xLights has usb and E1.31 drivers. You can create sequences in this object oriented program. You can create playlists, schedule them, test your hardware, convert between different sequencers.
GNU General Public License v3.0
529 stars 196 forks source link

Error building on Ubuntu 23.10 #4225

Open ProfM2 opened 7 months ago

ProfM2 commented 7 months ago

During the build process on Ubuntu 23.10, received the following error (or very similiar) from several files:

g++ -fno-strict-aliasing -Wno-unused-local-typedefs -DwxUSE_UNICODE -O2 -Wall -std=gnu++17 `wx-config --version=3.3 --cflags` `pkg-config --cflags gstreamer-1.0 gstreamer-video-1.0` `pkg-config --cflags libavformat libavcodec libavutil  libswresample libswscale` `pkg-config --cflags lua53` -Winvalid-pch -DWX_PRECOMP -DLINUX -DNDEBUG -D__cdecl='' -Wno-reorder -Wno-sign-compare -Wno-unused-variable -Wno-unused-but-set-variable -Wno-unused-function -Wno-unknown-pragmas  -Iinclude -Isequencer -I../xLights -Ieffects -Ieffects/ -Imodels -Ieffects/assist -I../include -Imodels/ -Isupport -Ioutputs -IxLights -IxLights/models -I../dependencies/libxlsxwriter/include -I../include/sol2-3.2.2 -c OutputModelManager.cpp -o .objs_lr/OutputModelManager.o
In file included from models/BaseObject.h:14,
                 from OutputModelManager.cpp:11:
models/../OutputModelManager.h:22:5: error: ‘uint32_t’ does not name a type
   22 |     uint32_t _workASAP = 0;      // work to do asap
      |     ^~~~~~~~
models/../OutputModelManager.h:14:1: note: ‘uint32_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
   13 | #include <list>
  +++ |+#include <cstdint>

Added #include <cstdint> to:

Currently unsure if this change would impact other build environments.

derwin12 commented 6 months ago

What version of xlights were you compiling against? Is this still an issue? The CI ubuntu build appears to be going fine.

computergeek1507 commented 6 months ago

Ubuntu 23.10 uses gcc 13 which requires that header now, I will try to fix it

cpinkham commented 6 months ago

I ran into this cstdint issue also on newer Fedora. Fedora 38 also uses gcc 13.2.1 and needs to have "#include " added to xLights/Discovery.h to get xLights compiling. I would have committed myself, but I'm not sure if I'm still listed as a collaborator since the switch to the new github org.

AzGilrock commented 6 months ago

I ran into this cstdint issue also on newer Fedora. Fedora 38 also uses gcc 13.2.1 and needs to have "#include " added to xLights/Discovery.h to get xLights compiling. I would have committed myself, but I'm not sure if I'm still listed as a collaborator since the switch to the new github org.

Using GitHub Mobile it's showing a Collaborator tag under your name so you're probably fine to make an update.

AzGilrock commented 6 months ago

What's weird is it's showing me as Member status but if I goto web version I can see I'm an owner in the xLightsSequencer organization.

cpinkham commented 6 months ago

I pushed a fix to get the xLights binary compiling, but left the ticket open because xSMSDaemon still fails to compile on my Fedora system. It is due to several uses of std::wstring in either a comparison to a static string or being added to a non-wide. One error is in SMSMessage.h and at least one more in xSMSDaemonMain.cpp. I am not in a position to test potential fixes to these issues, so I didn't want to commit anything touching these.