modifies the value of bDebugBuildsActuallyUseDebugCRT. This is not allowed.

When I migrate UE4 from 4.18 to 4.19, I got this error message, when I build ‘Debug Editor’.

XX modifies the value of bDebugBuildsActuallyUseDebugCRT. This is not allowed, as XX has build products in common with UE4Editor.
(XX is project name).

If I comment out this line from XXEditor.Target.cs, build is OK.
So, it is OK or did I do something wrong?

I’m hitting this on a -define to change how the editor/engine is built. And if they didn’t have projects in common then it wouldn’t be useful to me. There is no point in having GlobalDefinitions in the target that effect the entire solution if using it is just going to spit out errors and fail to build.

The issue is probably that the XXEditor.target.cs for project doesn’t explicitly set variable to true so it implicitly set’s it to false which is different from what is set in UE4Editor.Target.cs. You should probably add bDebugBuildsActuallyUseDebugCRT = true to XXEditor.target.cs. Check UE4Editor.Target.cs for comparison.