Latest develop won't build in VS2022
-
Severity Code Description Project File Line Suppression State Details Error LNK2001 unresolved external symbol "public: class juce::String __cdecl hise::RestServer::Request::operator[](class juce::Identifier const &)const " (??ARequest@RestServer@hise@@QEBA?AVString@juce@@AEBVIdentifier@4@@Z) HISE Standalone_App H:\development\HISE\HISE\projects\standalone\Builds\VisualStudio2022\include_hi_backend.obj 1 Error LNK2001 unresolved external symbol "private: void __cdecl hise::RestServer::AsyncRequest::mergeLogsIntoResponse(void)" (?mergeLogsIntoResponse@AsyncRequest@RestServer@hise@@AEAAXXZ) HISE Standalone_App H:\development\HISE\HISE\projects\standalone\Builds\VisualStudio2022\include_hi_backend.obj 1 Error LNK2001 unresolved external symbol "public: void __cdecl hise::RestServer::AsyncRequest::appendError(class juce::String const &,class juce::StringArray const &)" (?appendError@AsyncRequest@RestServer@hise@@QEAAXAEBVString@juce@@AEBVStringArray@5@@Z) HISE Standalone_App H:\development\HISE\HISE\projects\standalone\Builds\VisualStudio2022\include_hi_backend.obj 1 Error LNK2001 unresolved external symbol "public: void __cdecl hise::RestServer::AsyncRequest::appendLog(class juce::String const &)" (?appendLog@AsyncRequest@RestServer@hise@@QEAAXAEBVString@juce@@@Z) HISE Standalone_App H:\development\HISE\HISE\projects\standalone\Builds\VisualStudio2022\include_hi_backend.obj 1 Error LNK2001 unresolved external symbol "public: static struct hise::RestServer::Response __cdecl hise::RestServer::Response::error(int,class juce::String const &)" (?error@Response@RestServer@hise@@SA?AU123@HAEBVString@juce@@@Z) HISE Standalone_App H:\development\HISE\HISE\projects\standalone\Builds\VisualStudio2022\include_hi_backend.obj 1 Error LNK2001 unresolved external symbol "public: static struct hise::RestServer::Response __cdecl hise::RestServer::Response::ok(class juce::var const &)" (?ok@Response@RestServer@hise@@SA?AU123@AEBVvar@juce@@@Z) HISE Standalone_App H:\development\HISE\HISE\projects\standalone\Builds\VisualStudio2022\include_hi_backend.obj 1 Error LNK2001 unresolved external symbol "public: class juce::var __cdecl hise::RestServer::Request::getJsonBody(void)const " (?getJsonBody@Request@RestServer@hise@@QEBA?AVvar@juce@@XZ) HISE Standalone_App H:\development\HISE\HISE\projects\standalone\Builds\VisualStudio2022\include_hi_backend.obj 1 Error LNK2001 unresolved external symbol "public: bool __cdecl hise::RestServer::Request::getTrueValue(class juce::Identifier const &)const " (?getTrueValue@Request@RestServer@hise@@QEBA_NAEBVIdentifier@juce@@@Z) HISE Standalone_App H:\development\HISE\HISE\projects\standalone\Builds\VisualStudio2022\include_hi_backend.obj 1 Error LNK2001 unresolved external symbol "public: void __cdecl hise::RestServer::removeListener(class hise::RestServer::Listener *)" (?removeListener@RestServer@hise@@QEAAXPEAVListener@12@@Z) HISE Standalone_App H:\development\HISE\HISE\projects\standalone\Builds\VisualStudio2022\include_hi_backend.obj 1 Error LNK2001 unresolved external symbol "public: void __cdecl hise::RestServer::addListener(class hise::RestServer::Listener *)" (?addListener@RestServer@hise@@QEAAXPEAVListener@12@@Z) HISE Standalone_App H:\development\HISE\HISE\projects\standalone\Builds\VisualStudio2022\include_hi_backend.obj 1 Error LNK2001 unresolved external symbol "public: int __cdecl hise::RestServer::getPort(void)const " (?getPort@RestServer@hise@@QEBAHXZ) HISE Standalone_App H:\development\HISE\HISE\projects\standalone\Builds\VisualStudio2022\include_hi_backend.obj 1 Error LNK2001 unresolved external symbol "public: bool __cdecl hise::RestServer::isRunning(void)const " (?isRunning@RestServer@hise@@QEBA_NXZ) HISE Standalone_App H:\development\HISE\HISE\projects\standalone\Builds\VisualStudio2022\include_hi_backend.obj 1 Error LNK2001 unresolved external symbol "public: void __cdecl hise::RestServer::stop(void)" (?stop@RestServer@hise@@QEAAXXZ) HISE Standalone_App H:\development\HISE\HISE\projects\standalone\Builds\VisualStudio2022\include_hi_backend.obj 1 Error LNK2001 unresolved external symbol "public: bool __cdecl hise::RestServer::start(int,class juce::String const &)" (?start@RestServer@hise@@QEAA_NHAEBVString@juce@@@Z) HISE Standalone_App H:\development\HISE\HISE\projects\standalone\Builds\VisualStudio2022\include_hi_backend.obj 1 Error LNK2001 unresolved external symbol "public: void __cdecl hise::RestServer::addAsyncRoute(enum hise::RestServer::Method,class juce::URL const &,class std::function<struct hise::RestServer::Response __cdecl(class juce::ReferenceCountedObjectPtr<class hise::RestServer::AsyncRequest>)>)" (?addAsyncRoute@RestServer@hise@@QEAAXW4Method@12@AEBVURL@juce@@V?$function@$$A6A?AUResponse@RestServer@hise@@V?$ReferenceCountedObjectPtr@VAsyncRequest@RestServer@hise@@@juce@@@Z@std@@@Z) HISE Standalone_App H:\development\HISE\HISE\projects\standalone\Builds\VisualStudio2022\include_hi_backend.obj 1 Error LNK2001 unresolved external symbol "public: class juce::URL __cdecl hise::RestServer::getBaseURL(void)const " (?getBaseURL@RestServer@hise@@QEBA?AVURL@juce@@XZ) HISE Standalone_App H:\development\HISE\HISE\projects\standalone\Builds\VisualStudio2022\include_hi_backend.obj 1 Error LNK2001 unresolved external symbol "public: __cdecl hise::RestServer::~RestServer(void)" (??1RestServer@hise@@QEAA@XZ) HISE Standalone_App H:\development\HISE\HISE\projects\standalone\Builds\VisualStudio2022\include_hi_backend.obj 1 Error LNK2001 unresolved external symbol "public: __cdecl hise::RestServer::RestServer(void)" (??0RestServer@hise@@QEAA@XZ) HISE Standalone_App H:\development\HISE\HISE\projects\standalone\Builds\VisualStudio2022\include_hi_backend.obj 1 Error LNK2001 unresolved external symbol "public: static void __cdecl hise::RestServer::forceRepaintWindow(void *)" (?forceRepaintWindow@RestServer@hise@@SAXPEAX@Z) HISE Standalone_App H:\development\HISE\HISE\projects\standalone\Builds\VisualStudio2022\include_hi_backend.obj 1 Error LNK1120 19 unresolved externals HISE Standalone_App H:\development\HISE\HISE\projects\standalone\Builds\VisualStudio2022\x64\Release\App\HISE.exe 1Now this I can't diagnose for myself, so I had to use Claude. It says:
Root Cause: hi_backend_02.cpp is not registered as a JUCE module compilation unit The RestServer.cpp implementation is included from two places: hi_backend.cpp (line 84-86) — includes RestServerUndoManager.h, RestServerUndoManagerActions.cpp, and RestServerUndoManager.cpp — but NOT RestServer.cpp itself hi_backend_02.cpp (line 37-38) — includes RestServer.h and RestServer.cpp The problem is that hi_backend_02.cpp is a separate compilation unit that is not listed in the JUCE module declaration (see hi_backend.h lines 35-47 ). In JUCE's module system, only the main .cpp file (hi_backend.cpp) is automatically compiled by the Projucer-generated project. Additional .cpp files must be declared with OSXFrameworks:, searchpaths:, or explicitly added to the project. This is a bug in the HISE source at commit 65e2477. The RestServer.cpp implementation was split into a separate compilation unit (hi_backend_02.cpp) but was never properly registered, so the Projucer/VS project doesn't know to compile it. Option A: Move the #include into the main compilation unit (recommended) Add the RestServer.cpp include into hi_backend.cpp where the rest of the RestServer-related files already live. It logically belongs after line 86: diff #include "backend/ai_tools/RestServerUndoManager.h" #include "backend/ai_tools/RestServerUndoManagerActions.cpp" #include "backend/ai_tools/RestServerUndoManager.cpp" +#include "backend/ai_tools/RestServer.cpp" #include "backend/ai_tools/RestApiDefinitions.cpp" Option B: Add hi_backend_02.cpp to the VS project manually In Visual Studio, right-click the hi_backend source group → Add Existing Item → add hi_backend_02.cpp. This is fragile and will be lost if the Projucer regenerates the project. Option A is the correct fix — it was likely an oversight where RestServer.cpp was separated into hi_backend_02.cpp (perhaps to reduce compile times or for a VS2026-specific build configuration) but the module wasn't updated to include it. This is an upstream HISE bug you should report to Christoph Hart or fix in your fork. -
@Orvillain looks like you're missing the hi_backend_02 compilation unit. Try deleting the VS solution folder and resave the projucer file, this should recreate the .sln file with the correct layout.
-
hmmmm, oddness aplenty here. I've done that, and I still get this kind of thing:
error C2653: 'zstd': is not a class or namespace name node_ids.h(842) — compiling include_hi_tools_03.cpp node_ids.h(937) — compiling include_hi_tools_03.cpp node_ids.h(958) — compiling include_hi_tools_03.cpp error C2065: 'ZDefaultCompressor': undeclared identifier node_ids.h(842) — compiling include_hi_dsp_library_01.cpp node_ids.h(937) — compiling include_hi_dsp_library_01.cpp node_ids.h(958) — compiling include_hi_dsp_library_01.cpp (same errors repeated across Main.cpp, include_hi_tools_01.cpp)Claude said this:
Not set anywhere in your project. This confirms the DLL project inherits the default HISE_INCLUDE_SCRIPTNODE_DATABASE=1, which pulls in zstd code without the zstd module. Tell Christoph specifically: The zstd error is in the DspNetworks DLL project (from compile_networks), not the HISE Standalone. hi_dsp_library.h defaults HISE_INCLUDE_SCRIPTNODE_DATABASE=1, which causes node_ids.h to use zstd::ZDefaultCompressor at lines 842/937/958. But the DLL project template (ProjectDllTemplate.cpp) doesn't include hi_zstd. Either the DLL template needs hi_zstd added, or HISE_INCLUDE_SCRIPTNODE_DATABASE should default to 0 for DLL builds. The three call sites are in NodeDatabase::ProjectData (line 842), ProjectData::writeProjectData (line 937), and NodeDatabase::Data (line 958). Either the DLL project template needs hi_zstd added, or HISE_INCLUDE_SCRIPTNODE_DATABASE should be set to 0 for DLL builds, or the zstd:: calls need a guard like #if HISE_INCLUDE_ZSTD.I already tried deleting the VS solution folder and resaving the Projucer file — same result.
Sorry - wish I could be more thorough, but I don't know anything about this side of HISE!
-
@Orvillain ah yes sorry that‘s a different error - I‘m currently in the middle of rewriting the build pipeline on every OS so it‘s expected that something is glitchy - in this case the scriptnode database flag should be zero on dll builds.
-
@Christoph-Hart said in Latest develop won't build in VS2022:
@Orvillain ah yes sorry that‘s a different error - I‘m currently in the middle of rewriting the build pipeline on every OS so it‘s expected that something is glitchy - in this case the scriptnode database flag should be zero on dll builds.
Okie dokie. I'm now at this point:
Christoph confirmed our fix — HISE_INCLUDE_SCRIPTNODE_DATABASE=0 in ProjectDllTemplate.cpp is correct. ✅ But there's still a second blocker: the Projucer's VS2026 exporter silently fails to create the VisualStudio2026 output folder. When we rebuild HISE with the template fix, compile_networks will still fail because Projucer can't generate the .sln. You should tell Christoph: The HISE_INCLUDE_SCRIPTNODE_DATABASE=0 fix is applied. But there's a second issue: the Projucer in JUCE_customized silently fails when processing the <VS2026> exporter — it creates no Windows output folder at all. The class MSVCProjectExporterVC2026 exists in jucer_ProjectExport_MSVC.h and is registered in jucer_ProjectExporter.cpp, but --resave produces only MacOSX and LinuxMakefile outputs, no VisualStudio2026 folder.I'm happy to dig in and help debug this, limited as my capabilities are!
-
@Orvillain said in Latest develop won't build in VS2022:
Okie dokie. I'm now at this point:
I would build an older commit. Or is there something you need specifically from the bleeding edge?
-
@David-Healey said in Latest develop won't build in VS2022:
@Orvillain said in Latest develop won't build in VS2022:
Okie dokie. I'm now at this point:
I would build an older commit. Or is there something you need specifically from the bleeding edge?
Well I've ended up down a rabbit hole for sure! lolololol.
I started off on an older build, and hit the original VS2022 versus VS2026 and our CI build system. So I got the CI devs to add VS2026 support, and started working through issues one by one. I don't necessarily think there is a specific reason for me to be on the bleeding edge. Certainly need to be on a build from sometime in 2026 though. I'll do some more digging later on. Dinner time!
-
@Orvillain I'm working on a commit from March 10th, try this one:
0e91c69c5708cefe4f1f2de763215e5e8210d32b -
I'll cleanup all builds tomorrow. The reason I worked on this is that I've trimmed down the system requirements for compiling plugins with HISE - you now don't need VS or Xcode anymore - MS and Apple provide headless compiler tools that can be completely installed with the command line so the installation script that the HISE TUI app runs will be completely hands-off - it basically installs and sets up HISE with Faust & IPP with a single command now.
-
-
@Christoph-Hart said in Latest develop won't build in VS2022:
I'll cleanup all builds tomorrow. The reason I worked on this is that I've trimmed down the system requirements for compiling plugins with HISE - you now don't need VS or Xcode anymore - MS and Apple provide headless compiler tools that can be completely installed with the command line so the installation script that the HISE TUI app runs will be completely hands-off - it basically installs and sets up HISE with Faust & IPP with a single command now.
That's awesome!
-
@David-Healey Yep, will give it a go tomorrow, cheers!
