liamkf / Unreal_FASTBuild

Allows UnrealEngine to be built with FASTBuild for VS2015/VS2017 and Windows 10.
MIT License
179 stars 71 forks source link

Failed to Link due to .response file VS 2017 UE4.18 #22

Closed deadwizad closed 6 years ago

deadwizad commented 6 years ago

I've patched up this implementation to work with UE4.18 and VS2017.

However, if you disable

bUseUnityBuild = false bUseSharedPCHs = false

You get this.

3>7> LINK : fatal error LNK1104: cannot open file '@C:\Work\UnrealEngine\Engine\Intermediate\Build\Win64\ShaderCompileWorker\Development\ShaderCompileWorker-Core.lib.response'
3>
3>7> Failed to build Library (error 1104) 'C:\Work\UnrealEngine\Engine\Intermediate\Build\Win64\ShaderCompileWorker\Development\ShaderCompileWorker-Core.lib'

The response file exists.

Our game module experiences the same issues. I can compile the engine just fine, the game module just wont have it and fails to compile 100% of the time in the same place.

Any ideas?

rvkennedy commented 6 years ago

Can you post the text of the ShaderCompileWorker action that's created in your bff file?

deadwizad commented 6 years ago

fbuild.txt

Added it here as well for consistency. Further notes.

I'm on the very latest of VS2017 Community.

nedwardsnae commented 6 years ago

For anyone who is curious about this, the cause of the issue is that once the link command exceeds a certain length, FASTBuild generates its own response file. This response file then contains the UE response file, and nested response files aren't supported. See here: https://msdn.microsoft.com/en-us/library/3te4xt0y.aspx. "It is not possible to specify the @ option from within a response file. That is, a response file cannot embed another response file."

yass007 commented 6 years ago

Fixed in the latest.

yass007 commented 6 years ago

Closing