# Windows - Juce 8.0.6 Builds Issues (juce\_PushNotifications.h)

**URL:** <https://forum.juce.com/t/windows-juce-8-0-6-builds-issues-juce-pushnotifications-h/65317>\
**Category:** Windows\
**Created:** [February 21, 2025, 6:12pm UTC](https://forum.juce.com/t/windows-juce-8-0-6-builds-issues-juce-pushnotifications-h/65317 "2025-02-21T18:12:04Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![Zhattis4](https://avatars.discourse-cdn.com/v4/letter/z/6a8cbe/32.png) [@Zhattis4](https://forum.juce.com/u/Zhattis4)\
**Post date:** [February 21, 2025, 6:12pm UTC](https://forum.juce.com/t/windows-juce-8-0-6-builds-issues-juce-pushnotifications-h/65317/1 "2025-02-21T18:12:04Z")

</div>

juce\_pushNotifications.h is causing compile issues on Windows with update to Juce 8.0.6 both locally and on CI

relevant build info is as follows:

compiler:

> C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/VC/Tools/MSVC/14.42.34433/bin/Hostx64/x64/cl.exe

Build failure:

> FAILED: CMakeFiles/Project.dir/Plugin/Source/Processor/PluginProcessor.cpp.obj  
> C:\PROGRA~1\MICROS~4\2022\COMMUN~1\VC\Tools\MSVC\1442~1.344\bin\Hostx64\x64\cl.exe /nologo /TP -DJUCE\_DISPLAY\_SPLASH\_SCREEN=0 -DJUCE\_GLOBAL\_MODULE\_SETTINGS\_INCLUDED=1 -DJUCE\_MODULE\_AVAILABLE\_juce\_audio\_basics=1 -DJUCE\_MODULE\_AVAILABLE\_juce\_audio\_devices=1 -DJUCE\_MODULE\_AVAILABLE\_juce\_audio\_formats=1 -DJUCE\_MODULE\_AVAILABLE\_juce\_audio\_plugin\_client=1 -DJUCE\_MODULE\_AVAILABLE\_juce\_audio\_processors=1 -DJUCE\_MODULE\_AVAILABLE\_juce\_audio\_utils=1 -DJUCE\_MODULE\_AVAILABLE\_juce\_core=1 -DJUCE\_MODULE\_AVAILABLE\_juce\_data\_structures=1 -DJUCE\_MODULE\_AVAILABLE\_juce\_dsp=1 -DJUCE\_MODULE\_AVAILABLE\_juce\_events=1 -DJUCE\_MODULE\_AVAILABLE\_juce\_graphics=1 -DJUCE\_MODULE\_AVAILABLE\_juce\_gui\_basics=1 -DJUCE\_MODULE\_AVAILABLE\_juce\_gui\_extra=1 -DJUCE\_SHARED\_CODE=1 -DJUCE\_STANDALONE\_APPLICATION=JucePlugin\_Build\_Standalone -DJUCE\_VST3\_CAN\_REPLACE\_VST2=0 -DJucePlugin\_AAXCategory=0 -DJucePlugin\_AAXDisableBypass=0 -DJucePlugin\_AAXDisableMultiMono=0 -DJucePlugin\_AAXManufacturerCode=JucePlugin\_ManufacturerCode -DJucePlugin\_AAXProductId=JucePlugin\_PluginCode -DJucePlugin\_ARACompatibleArchiveIDs="" -DJucePlugin\_ARAContentTypes=0 -DJucePlugin\_ARATransformationFlags=0 -DJucePlugin\_AUExportPrefix=Co\_ProducerAU -DJucePlugin\_AUExportPrefixQuoted="Co\_ProducerAU" -DJucePlugin\_AUMainType=“‘aufx’” -DJucePlugin\_AUManufacturerCode=JucePlugin\_ManufacturerCode -DJucePlugin\_AUSubType=JucePlugin\_PluginCode -DJucePlugin\_Build\_AAX=0 -DJucePlugin\_Build\_AU=0 -DJucePlugin\_Build\_AUv3=0 -DJucePlugin\_Build\_LV2=0 -DJucePlugin\_Build\_Standalone=0 -DJucePlugin\_Build\_Unity=0 -DJucePlugin\_Build\_VST3=1 -DJucePlugin\_Build\_VST=0 -DJucePlugin\_Desc="Project" -DJucePlugin\_EditorRequiresKeyboardFocus=1 -DJucePlugin\_Enable\_ARA=0 -DJucePlugin\_IsMidiEffect=0 -DJucePlugin\_IsSynth=0 -DJucePlugin\_ManufacturerEmail="" -DJucePlugin\_ManufacturerWebsite="" -DJucePlugin\_PluginCode=0x436f7072 -DJucePlugin\_ProducesMidiOutput=0 -DJucePlugin\_VSTCategory=kPlugCategEffect -DJucePlugin\_VSTNumMidiInputs=16 -DJucePlugin\_VSTNumMidiOutputs=16 -DJucePlugin\_VSTUniqueID=JucePlugin\_PluginCode -DJucePlugin\_Version=0.6.0 -DJucePlugin\_VersionCode=0x600 -DJucePlugin\_VersionString="0.6.0" -DJucePlugin\_Vst3Category=“"Fx|Tools"” -DJucePlugin\_WantsMidiInput=0 -DLAGER\_DISABLE\_STORE\_DEPENDENCY\_CHECKS -DNDEBUG=1 -DSENTRY\_BUILD\_STATIC -DZUG\_VARIANT\_STD -D\_NDEBUG=1 -DelastiquePro\_REVISION=f6b1987 -DelastiquePro\_VERSION\_MAJOR=3 -DelastiquePro\_VERSION\_MINOR=4 -DelastiquePro\_VERSION\_PATCH=7 -DelastiquePro\_VERSION\_STRING="3.4.7+f6b1987" -DelastiqueSOLOIST\_REVISION=99a3ba0 -DelastiqueSOLOIST\_VERSION\_MAJOR=2 -DelastiqueSOLOIST\_VERSION\_MINOR=2 -DelastiqueSOLOIST\_VERSION\_PATCH=7 -DelastiqueSOLOIST\_VERSION\_STRING="2.2.7+99a3ba0"7\MT\include -external:W0 /DWIN32 /D\_WINDOWS /GR /EHsc /O2 /Ob2 /DNDEBUG -std:c++20 -MT /WX /bigobj /W4 /Ox /MP /EHsc -GL /Zc:\_\_cplusplus /showIncludes /FoCMakeFiles\Project.dir\Plugin\Source\Processor\PluginProcessor.cpp.obj /FdCMakeFiles\Project.dir\Project.pdb /FS -c C:\Users\circleci\project\Plugin\Source\Processor\PluginProcessor.cpp

> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(309): error C2144: syntax error: ‘char’ should be preceded by ‘}’  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(309): error C2062: type ‘char’ unexpected  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(311): error C2143: syntax error: missing ‘;’ before ‘}’  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(311): error C2238: unexpected token(s) preceding ‘;’  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(313): error C3646: ‘badgeIconType’: unknown override specifier  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(313): error C2059: syntax error: ‘=’  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(313): error C2238: unexpected token(s) preceding ‘;’  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(397): error C2653: ‘Notification’: is not a class or namespace name  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(397): error C2061: syntax error: identifier ‘Action’  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(407): error C2065: ‘Action’: undeclared identifier  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(407): error C2923: ‘juce::Array’: ‘Action’ is not a valid template type argument for parameter ‘ElementType’  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(407): note: see declaration of ‘Action’  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(407): error C2976: ‘juce::Array’: too few template arguments  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_core\containers/juce\_Array.h(67): note: see declaration of ‘juce::Array’  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(407): error C2955: ‘juce::Array’: use of class template requires template argument list  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_core\containers/juce\_Array.h(67): note: see declaration of ‘juce::Array’  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(471): error C2653: ‘Notification’: is not a class or namespace name  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(471): error C3646: ‘lockScreenAppearance’: unknown override specifier  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(471): error C2059: syntax error: ‘=’  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(471): error C2653: ‘Notification’: is not a class or namespace name  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(471): error C2238: unexpected token(s) preceding ‘;’  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(507): error C2270: ‘getPendingLocalNotifications’: modifiers not allowed on nonmember functions  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(519): error C2270: ‘areNotificationsEnabled’: modifiers not allowed on nonmember functions  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(525): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(525): error C2143: syntax error: missing ‘,’ before ‘&’  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(534): error C2270: ‘getDeliveredNotifications’: modifiers not allowed on nonmember functions  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(549): error C2270: ‘getDeviceToken’: modifiers not allowed on nonmember functions  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(616): error C2065: ‘Notification’: undeclared identifier  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(616): error C2923: ‘juce::Array’: ‘Notification’ is not a valid template type argument for parameter ‘ElementType’  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(616): note: see declaration of ‘Notification’  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(616): error C2976: ‘juce::Array’: too few template arguments  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_core\containers/juce\_Array.h(67): note: see declaration of ‘juce::Array’  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(616): error C2955: ‘juce::Array’: use of class template requires template argument list  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_core\containers/juce\_Array.h(67): note: see declaration of ‘juce::Array’  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(630): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(630): error C2143: syntax error: missing ‘,’ before ‘&’  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(647): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(647): error C2143: syntax error: missing ‘,’ before ‘&’  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(654): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(654): error C2143: syntax error: missing ‘,’ before ‘&’  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(663): error C2065: ‘Notification’: undeclared identifier  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(663): error C2923: ‘juce::Array’: ‘Notification’ is not a valid template type argument for parameter ‘ElementType’  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(663): note: see declaration of ‘Notification’  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(663): error C2976: ‘juce::Array’: too few template arguments  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_core\containers/juce\_Array.h(67): note: see declaration of ‘juce::Array’  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(663): error C2955: ‘juce::Array’: use of class template requires template argument list  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_core\containers/juce\_Array.h(67): note: see declaration of ‘juce::Array’  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(693): error C2059: syntax error: ‘private’  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(694): error C2059: syntax error: ‘)’  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(695): error C2588: ‘::~PushNotifications’: illegal global destructor  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(695): error C3158: ‘PushNotifications’: ‘override’ can only be applied to a virtual member function  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(695): error C2575: ‘PushNotifications’: only member functions and bases can be virtual  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(695): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(697): error C2039: ‘Listener’: is not a member of ‘juce::PushNotifications’  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(54): note: see declaration of ‘juce::PushNotifications’  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(697): error C2275: ‘juce::Listener’: expected an expression instead of a type  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(697): note: prefix the qualified-id with ‘typename’ to indicate a type  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(697): error C2923: ‘juce::ListenerList’: ‘juce::Listener’ is not a valid template type argument for parameter ‘ListenerClass’  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(600): note: see declaration of ‘juce::Listener’  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(697): error C2976: ‘juce::ListenerList’: too few template arguments  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_core\containers/juce\_ListenerList.h(71): note: see declaration of ‘juce::ListenerList’  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(697): error C2641: cannot deduce template arguments for ‘juce::ListenerList’  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(697): error C2783: ‘juce::ListenerList\<ListenerClass,ArrayType\> juce::ListenerList(void)’: could not deduce template argument for ‘ListenerClass’  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_core\containers/juce\_ListenerList.h(76): note: see declaration of ‘juce::ListenerList’  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(697): error C2780: ‘juce::ListenerList\<ListenerClass,ArrayType\> juce::ListenerList(juce::ListenerList\<ListenerClass,ArrayType\>)’: expects 1 arguments - 0 provided  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_core\containers/juce\_ListenerList.h(71): note: see declaration of ‘juce::ListenerList’  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(710): error C2059: syntax error: ‘}’  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_PushNotifications.h(710): error C2143: syntax error: missing ‘;’ before ‘}’  
> C:\Users\circleci\project\build\vcpkg\_installed\x64-windows-static\share\JuceModules\juce\_gui\_extra\misc/juce\_RecentlyOpenedFilesList.h(36): error C2143: syntax error: missing ‘;’ before ‘{’

---

<div class="post-metadata">

**Author:** ![Zhattis4](https://avatars.discourse-cdn.com/v4/letter/z/6a8cbe/32.png) [@Zhattis4](https://forum.juce.com/u/Zhattis4)\
**Post date:** [February 21, 2025, 8:13pm UTC](https://forum.juce.com/t/windows-juce-8-0-6-builds-issues-juce-pushnotifications-h/65317/2 "2025-02-21T20:13:08Z")

</div>

update -

I was able to figure out the problem - “small” is #define in rpcndr.h which is transitively included in juce\_gui\_extra.h, which causes compile errors  
in juce\_pushNotifications.h when since it uses “small” as an enum value for BadgeIconType on line 317.

adding the following to juce\_pushNotifications.h fixes the issue.

```auto
#if JUCE_WINDOWS && defined(small)
    #undef small
#endif

```

---

<div class="post-metadata">

**Author:** ![jamiebullock](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/jamiebullock/32/459_2.png) [@jamiebullock](https://forum.juce.com/u/jamiebullock)\
**Post date:** [June 13, 2025, 1:51pm UTC](https://forum.juce.com/t/windows-juce-8-0-6-builds-issues-juce-pushnotifications-h/65317/3 "2025-06-13T13:51:34Z")

</div>

We just came up against this, and it seems it happens if `windows.h` is included before JUCE headers. So we were able to fix without patching juce with:

```cpp
#include <windows.h>
#ifdef small
#undef small
#endif

```

---

<div class="post-metadata">

**Author:** ![benvining](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/benvining/32/9922_2.png) [@benvining](https://forum.juce.com/u/benvining)\
**Post date:** [May 7, 2026, 8:06pm UTC](https://forum.juce.com/t/windows-juce-8-0-6-builds-issues-juce-pushnotifications-h/65317/4 "2026-05-07T20:06:45Z")

</div>

Bumping this, this causes my Windows build to fail. Can this be fixed please?

---

<div class="post-metadata">

**Author:** ![reuk](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/reuk/32/21494_2.png) [@reuk](https://forum.juce.com/u/reuk)\
**Post date:** [May 8, 2026, 2:49pm UTC](https://forum.juce.com/t/windows-juce-8-0-6-builds-issues-juce-pushnotifications-h/65317/5 "2026-05-08T14:49:47Z")

</div>

I’m not sure whether it’s JUCE’s job to fix this. I think this error will only happen in the case where the include order is e.g.

```auto
#include <juce_core.h>
#include <windows.h>
#include <juce_gui_extra.h>

```

juce\_core.h already undefs `small`, but then `windows.h` redefines it, which then breaks the later juce\_gui\_extra.h inclusion. This can be resolved by switching the include order around, so that all JUCE headers get included before windows.h.

It’s not reasonable to expect JUCE headers to protect against any possible macro definition. With windows.h, it’s not just `small` that causes problems, but also `min` and `max`. It’s also easy to imagine a similar problem arising when including some header other than windows.h, which defines a commonly-used token.

Are you able to fix your build by tweaking your include order? If not, please provide some more details so that we can suggest a suitable workaround.

---

<div class="post-metadata">

**Author:** ![benvining](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/benvining/32/9922_2.png) [@benvining](https://forum.juce.com/u/benvining)\
**Post date:** [May 8, 2026, 2:56pm UTC](https://forum.juce.com/t/windows-juce-8-0-6-builds-issues-juce-pushnotifications-h/65317/6 "2026-05-08T14:56:13Z")

</div>

Nowhere in my code am I manually including `windows.h`, this only comes transitively from Juce headers.

The compiler error I get suggests that the error occurs when compiling the juce\_gui\_basics translation unit, which is why I thought this needed to be a Juce fix or patch.

---

<div class="post-metadata">

**Author:** ![reuk](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/reuk/32/21494_2.png) [@reuk](https://forum.juce.com/u/reuk)\
**Post date:** [May 8, 2026, 2:59pm UTC](https://forum.juce.com/t/windows-juce-8-0-6-builds-issues-juce-pushnotifications-h/65317/7 "2026-05-08T14:59:27Z")

</div>

What’s the actual text of the error message? Is the problem with `small` being defined, or some other token? Are you able to find where the problematic definition is coming from?

---

<div class="post-metadata">

**Author:** ![cpr2323](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/cpr2323/32/18682_2.png) [@cpr2323](https://forum.juce.com/u/cpr2323)\
**Post date:** [May 8, 2026, 3:47pm UTC](https://forum.juce.com/t/windows-juce-8-0-6-builds-issues-juce-pushnotifications-h/65317/8 "2026-05-08T15:47:24Z")

</div>

I don’t know if this will be helpful, but there is an option in Visual Studio to show the includes during the build. I often use this to help diagnose issues related to include files.

 ![image](https://us1.discourse-cdn.com/flex026/uploads/juce/original/3X/1/f/1f0759ce18672588992f43f9c59e2f8fdb0815d4.png)

---

<div class="post-metadata">

**Author:** ![benvining](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/benvining/32/9922_2.png) [@benvining](https://forum.juce.com/u/benvining)\
**Post date:** [May 21, 2026, 7:58pm UTC](https://forum.juce.com/t/windows-juce-8-0-6-builds-issues-juce-pushnotifications-h/65317/9 "2026-05-21T19:58:05Z")

</div>

Thanks for this tip! I was able to discover that a third party dependency was including windows.h in their header file, so I’ve added some logic to undef small after including their header. The issue seems to be fixed now, not a juce bug after all.
