Forum Discussion

🚨 This forum is archived and read-only. To submit a forum post, please visit our new Developer Forum. 🚨
Stratosh's avatar
Stratosh
Explorer
10 months ago

Voice SDK failed to compile with UE5.5 Oculus fork.

Hi there!

I'm trying to implement Voice SDK into my project but when I install it (with the batch file adressed in documentation), I'm not able to compile project or even start the editor. Anyone using Voice SDK with 5.5 succesfully?

The last version of Voice SDK is Release 67.0.0. Is maybe 72.0.0 coming any soon? 

Thanks

8 Replies

Replies have been turned off for this discussion
    • Stratosh's avatar
      Stratosh
      Explorer

      I would appriciate more humanoid answer than this "copy-paste" nonsense generated answer. Of course I've used horiyon/support page as a start for finding an answer. I didn't find so I've ended up asking here.

  • I know you asked for unreal 5.5 but for me it works perfectly on unreal 4.27 v49. I still use this version because I started a project at 2023 and only finished now. I also have on Unreal 5.3 working. It was working and now on unreal 5.5 it stopped?

    • Stratosh's avatar
      Stratosh
      Explorer

      Thanks for the answer! But I suppose the problem is with the version:

       

      [1/13] Compile [x64] HttpThread.cpp
      [2/13] Compile [x64] Module.Wit.4.cpp
      11>WitRequestSubsystem.cpp(175): Error C2039 : 'OnRequestProgress': is not a member of 'IHttpRequest'
      11>GenericPlatformHttp.h(16): Reference C2039 : see declaration of 'IHttpRequest'
      11>WitRequestSubsystem.cpp(344): Warning C4996 : 'FJsonObject::HasField': Passing an ANSI string to HasField has been deprecated outside of UTF-8 mode. Please use the overload that takes a TCHAR string. Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile.
      11>WitVoiceService.cpp(805): Warning C4996 : 'FJsonObject::GetStringField': Passing an ANSI string to GetStringField has been deprecated outside of UTF-8 mode. Please use the overload that takes a TCHAR string. Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile.
      11>WitHelperUtilities.cpp(606): Warning C4996 : 'FJsonObject::TryGetArrayField': Passing an ANSI string to TryGetArrayField has been deprecated outside of UTF-8 mode. Please use the overload that takes a TCHAR string. Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile.
      11>WitHelperUtilities.cpp(648): Warning C4996 : 'FJsonObject::TryGetObjectField': Passing an ANSI string to TryGetObjectField has been deprecated outside of UTF-8 mode. Please use the overload that takes a TCHAR string. Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile.
      [3/13] Compile [x64] Module.HTTP.cpp
      [4/13] Link [x64] UnrealEditor-HTTP.lib
      [5/13] Link [x64] UnrealEditor-HTTP.dll
      Creating object ..\Binaries\Win64\UnrealEditor-HTTP.exp
      [6/13] WriteMetadata UnrealEditor.version (Emerald_MRVREditor) (UBA disabled)
      [7/13] Compile [x64] Module.Wit.3.cpp
      11>HttpThread.cpp(23): Error C2065 : 'UE_HTTP_DEFAULT_MAX_CONCURRENT_REQUESTS': undeclared identifier
      11>HttpThread.cpp(279): Error C4668 : 'UE_HTTP_SUPPORT_TO_INCREASE_MAX_REQUESTS_AT_RUNTIME' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif'
      11>WitHttpEngineIncludes.cpp(38): Error C1083 : Cannot open include file: 'IHttpThreadedRequest.cpp': No such file or directory
      Trace file written to Z:/UE_5.5_Oculus/UnrealEngine/Engine/Programs/UnrealBuildTool/Log.uba with size 6.9kb
      Total time in Unreal Build Accelerator local executor: 7.58 seconds
      Total execution time: 15.31 seconds
      11>Microsoft.MakeFile.Targets(44,5): Error MSB3073 : The command "Z:\UE_5.5_Oculus\UnrealEngine\Engine\Build\BatchFiles\Build.bat -Target="Emerald_MRVREditor Win64 DebugGame -Project=\"Z:\UE_Oculus\Emerald_MRVR\Emerald_MRVR.uproject\"" -Target="ShaderCompileWorker Win64 Development -Project=\"Z:\UE_Oculus\Emerald_MRVR\Emerald_MRVR.uproject\" -Quiet" -WaitMutex -FromMsBuild -architecture=x64" exited with code 6. 

  • Hi, did you find a solution? I also encountered this problem on version 5.5! I refuse to simply downgrade to 5.4(

  • pro_zac's avatar
    pro_zac
    Meta Employee

    Hi all. You are correct, there are a number of errors when compiling Voice SDK on UE5.5 due to changes in the engine. It looks like you will need the 3 fixes below. You can use these patches until an updated SDK is available. 

    1 - Don't include deprecated IHttpThreadedRequest.cpp
    In voicesdk/wit-unreal/Source/Wit/Private/Wit/Request/HTTP/WitHttpEngineIncludes.cpp change this:

    #if UE_VERSION_OLDER_THAN(5, 3, 0)
    #else
    #include "IHttpThreadedRequest.cpp"
    #endif


    to this:

    #if UE_VERSION_OLDER_THAN(5, 3, 0)
    #else
    #if UE_VERSION_OLDER_THAN(5, 5, 0)
    #include "IHttpThreadedRequest.cpp"
    #endif
    #endif

     
    2 - Include EngineVersionComparison.h in WitRequestSubsystem.h

    #include "Misc/EngineVersionComparison.h"


    3 - Make new engine defines public
    In Engine\Source\Runtime\Online\HTTP\HTTP.Build.cs, change these lines from Private

    PrivateDefinitions.Add("UE_HTTP_SUPPORT_TO_INCREASE_MAX_REQUESTS_AT_RUNTIME=" + (bPlatformSupportToIncreaseMaxRequestsAtRuntime ? "1" : "0"));
    ...
    PrivateDefinitions.Add("UE_HTTP_DEFAULT_MAX_CONCURRENT_REQUESTS=" + DefaultMaxConcurrentRequests);

     to Public

    PublicDefinitions.Add("UE_HTTP_SUPPORT_TO_INCREASE_MAX_REQUESTS_AT_RUNTIME=" + (bPlatformSupportToIncreaseMaxRequestsAtRuntime ? "1" : "0"));
    ...
    PublicDefinitions.Add("UE_HTTP_DEFAULT_MAX_CONCURRENT_REQUESTS=" + DefaultMaxConcurrentRequests);

     
    With these fixes, I was able to compile and use the Voice SDK in 5.5. Let us know if that works for you too. 

  • pro_zac's avatar
    pro_zac
    Meta Employee

    For anyone that wants to avoid engine changes or is using the vanilla UE5.5 release, you can skip step 3 above and instead add the following code to wit-unreal/Source/Wit/Private/Wit/Request/HTTP/WitHttpEngineIncludes.cpp

    #if UE_VERSION_OLDER_THAN(5, 5, 0)
    #else
    // These defines are private. Redefining here as they are required to compile HttpThread.cpp.
    // Making them public in HTTP.Build.cs would be an engine change and this plugin needs to work with vanilla UE5. 
    #define UE_HTTP_DEFAULT_MAX_CONCURRENT_REQUESTS INT_MAX //int DefaultMaxConcurrentRequests { get { return int.MaxValue; } }
    #define UE_HTTP_SUPPORT_TO_INCREASE_MAX_REQUESTS_AT_RUNTIME 1 //(bPlatformSupportToIncreaseMaxRequestsAtRuntime ? "1" : "0")
    #endif

     

    I have this at line 32.