Couldn't find target rules file for target '-canskiplink' with new project

I’m getting the following log errors upon creating a new blank C++ project:

Creating makefile for hot reloading -canskiplink (no existing makefile)
ERROR: Couldn't find target rules file for target '-canskiplink' in rules assembly 'UE4Rules, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'.
Location: C:\Program Files\Epic Games\UE_4.15\Engine\Intermediate\Build\BuildRules\UE4Rules.dll
Target rules found:
    UE4Editor - C:\Program Files\Epic Games\UE_4.15\Engine\Source\UE4Editor.Target.cs
    UE4Game - C:\Program Files\Epic Games\UE_4.15\Engine\Source\UE4Game.Target.cs
    UnrealHeaderTool - C:\Program Files\Epic Games\UE_4.15\Engine\Source\Programs\UnrealHeaderTool\UnrealHeaderTool.Target.cs

My UPROJECT file location is:

C:\Users\asperatology\Documents\Unreal Projects\Test

My default installation folder directory is:

C:\Program Files\Epic Games\UE_4.15

I have checked in my blank C++ project code that there’s no int called anywhere.

Right now, I’m just trying to set up UE4 in a way where I can run two Visual Studio instances, one debugs the editor, and the other just handles editing code and IntelliSense.

I do not have a UE4 source repo from Github. I have already set the solution configurations to Development Editor, and platform to Win64 in Visual Studio 2015, and am currently debugging the project.


I have checked a few places:

Of which, the very last one in the list above is very very similar to what I’m experiencing right now.


A few questions:

  • Am I not supposed to compile the C++ code within the UE4 editor?
  • Am I supposed to compile and build only from Visual Studio 2015?
  • What is the target rule, ‘-canskiplink’, used for? I’ve never heard of this before.
  • I cannot modify C++ code and recompile/rebuild the code from Visual Studio 2015. If I am not supposed to compile within UE4, what is a better way of doing this, while keeping an instance of Visual Studio 2015 debugging the UE4 Editor, in case of sudden hard crashes and breaking from the exception instead of letting UE4 Crash Reporter catch the exception?
  • Does the _ (underscore), the ’ ’ (whitespace), and . (period) in the default installation path affect build issues? I’m heavily assuming it doesn’t, but I just need to make sure.

Thanks.

Hello asperatology,

I’m not sure what is causing your -canskiplink error so I’ll need to continue looking into that. In the meantime, I wanted to mention that I don’t think the workflow you’re trying to accomplish is going to work. When you have two Visual Studio processes open, if one is debugging, it will have a hold of sorts on the .dll and will cause issues when you try to edit it via compiling from the other Visual Studio. You could accomplish this workflow with just one Visual Studio window however. If you make edits in the Visual Studio window while debugging and then compile using the button inside of the editor, the changes should compile successfully and be updated properly.

As for the issue itself, it seems that it’s the name of your project. It seems that creating a project named “Test” causes compilation issues, likely related to something already existing by this name related to UBT. Stopping users from doing this accidentally was requested with this Feature Request. The _, whitespace, and period in your filepath shouldn’t cause any issues, those are the default names of those folders when installing through the Epic Games Launcher.

Thank you for giving me advice on the workflow. It’s just that I wanted an extra layer of protection, where when the UE4 editor crashes, I wanted to be able to see where exactly did UE4 break, and go from there in reverse, so I can not only read the call stack to my project, but also report additional findings like exact line of code from the breakpoints and so forth. It’s that extra layer of exception handling that I would like to integrate into the workflow. I was able to make it work when using UE4.6 to UE4.7.6, but now I’m not sure how I did it back then.

Certain names shouldn’t be used when working with UE4 C++ projects? Interesting to know. I do wished there is a list of names that we are not recommended to use them in our projects, perhaps that would be a simpler way to go? I know some of the newer UE4 and returning UE4 developers have to re-read the guides, and may have forgotten about the restriction of names. If the list of restricted names are on the guides, then it would wonderful.