x

Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

Can't Package Project in 4.16. Error C2061, C2504, C3646, C4430, C2614

Hello. I migrated my project from a gihub 4.14.1 branch to the new 4.16.1

It all works fine in the editor after fixing a bunch of old standard code. I can launch the engine no problem, and run through my game in VR preview.

The issue comes when I wanted to package the game for the first time since I migrated my project. The log spits out the following error:

 [2017.06.24-15.05.03:451][767]UATHelper: Packaging (Windows (64-bit)): UnrealBuildTool: ERROR: UBT ERROR: Failed to produce item: D:\UnrealEngine\UnrealEngine4-16\Engine\Plugins\MidiAsset\Procedural-Midi\MidiAsset\Binaries\Win64\MusicalRange-ProceduralAudio.lib
 

And before that it spits out a lot of errors related to the Procedural Midi plugin that my game uses.

Full Package Log link text

Dropbox Link - https://www.dropbox.com/s/4p22xtqrhesmgql/PackageLog1.txt?dl=0

I got it from the github master branch. On the market place, the plugin claims to support 4.16. I am baffled by this as, the engine compiles fine for the editor.

Procedural Midi Github - https://github.com/Geromatic/Midi-Unreal

Procedural Midi Marketplace - https://www.unrealengine.com/marketplace/procedural-midi

I looked at this similar question, but I don't know how that applies to the plugin. As there is one MidiAssetEditor.Build.Cs, but it's the code is very similar to the one being used in my 4.14 version. alt text

I also tried out what this post suggested, but I did not have any luck with that.

https://answers.unrealengine.com/questions/397021/cannot-build-project-ubt-error.html

Anyone knows what is wrong and how I could fix this?

Product Version: UE Github Master branch
Tags:
packagelog1.txt (60.3 kB)
more ▼

asked Jun 26 '17 at 01:14 PM in Packaging & Deployment

avatar image

Motanum
610 55 60 303

avatar image Motanum Jun 26 '17 at 03:08 PM

I am still stumped by this issue. I just downloaded the engine from the epic launcher, made a test project, added the same uassets for the MIDI stuff and it did package and is playable as a stand alone game.

I then created code for the test project, so I could look at the code from the Marketplace/MidiAsset folder, and it all looks very similar. The *.build.cs files are the same. The Headers and Cpp files are also the same.

I don't get what is going on that in my own compile it will not package.

(comments are locked)
10|2000 characters needed characters left

2 answers: sort voted first

I solved this issue by instead of having the ProceduralMidi plugin be engine installed, it is now installed on the project instead.

I had to change a bunch of cpp files to have the headers be on top (the *privatePCH,h header), which took some time but that did it.

Now, the lib that failed before does work and gets packaged. Now I am getting another packaging error.

 LogLinker:Error: BPGC_ARCH_FOR_CDO_MusicalRangeBPFunctionLibrary_2 has an inappropriate outermost, it was probably saved with a deprecated outer (file: ../../../../../Dropbox/MusicalRange-4.16/Content/MusicShoot/Blueprints/BP_SongFinder.uasset)

But I think that is something for another post.

more ▼

answered Jun 26 '17 at 08:46 PM

avatar image

Motanum
610 55 60 303

(comments are locked)
10|2000 characters needed characters left

The fault is in the plugin code, it's carelessly written with types used without including the necessary headers first. Unfortunately UE4's use of precompiled headers and unity builds can cause these errors to go unnoticed in certain contexts, though I'm surprised this made it through the marketplace build check as is.

I don't know details of what exactly is different between launcher and github engine builds, perhaps you have unity builds disabled? Otherwise maybe shared engine pchs are different in source builds.

Regardless, the only way this will be reliable under all conditions and in the future, is for the code to be cleaned up with explicit includes of the required headers.

more ▼

answered Jun 26 '17 at 04:46 PM

avatar image

kamrann
2.1k 83 28 117

avatar image Motanum Jun 26 '17 at 04:49 PM

I tried creating anew project with the marketplace version using the launcher 4.16.1 version and it did package. Is there a way I could obtain the code from the market place version quickly? When I open it in VS it doesn't allow me to explore to disk.

How do I check if I have the Unity Builds disabled?

avatar image kamrann Jun 26 '17 at 05:06 PM

Are you saying the marketplace version packaged okay within your source engine build, and is different from the Github version of the plugin? Or just that it packaged within the launcher engine?

Unity builds would be disabled within BuildConfiguration,xml, which can exist at various places; somewhere in your documents folder, in Engine/Saved/UnrealBuildTool, and maybe also in your project folder.

avatar image Motanum Jun 26 '17 at 05:15 PM

No.

I have an version of the engine for my game. From Github based on 4.16.1. That version, then I added under plugins the MidiAsset plugin and build under Development Editor, win64.

The engine compiles succesfully, and I can run and play in VR mode on the editor. When I package the game to test as stand alone, the packaging fails with the log I posted originally.

To test out and check for differences. I downloaded UE4.16.1 from the epic launcher, and installed from the market place the MidiAsset plugin. I cretaed a test project "tets416" and migrated some files from my game to the new test project. After fiddling with it, and making sure MIDI was working as intended. I packaged that project and it was successful. I could run it in stand alone.

Maybe I could copy the code that the marketplace plugin shows when I add code to the test416 project and look at the engine files. Under Engine/Plugins/Marketplace/MidiAsset. But I can't just grab the files, or explore with windows?

EDIT. I looked under Engine/Saved/UnrealBuildTool and under AppData/Roaming and both XMLs were empty.

avatar image kamrann Jun 26 '17 at 06:20 PM

I'm not sure what you're asking about getting the files, but I just checked and the marketplace version of the plugin also has the same issue with missing includes. So it comes down to a difference in the build environment between launcher and Github engines. Like I said, there are some differences but I don't know exactly what they are.

Your best bet would be to simply fix the plugin (or suggest the author fixes it) by adding explicit includes. To be clear, whatever the precise differences are, the plugin only builds on the launcher version/editor config due to a reliance on build environment settings that happen to be satisfied in those scenarios, but the code is fundamentally faulty.

(comments are locked)
10|2000 characters needed characters left
Your answer
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question