UnrealEngineHTML5 / Documentation

532 stars 183 forks source link

Package of First Person project fail. No such file PhysX3_O2.a #65

Closed corneel closed 3 years ago

corneel commented 3 years ago

I was following the instructions on installing the HTML5 features and received this error when I tried to package for HTML5. I noticed there are other references online of people who had the same experience when packaging for HTML5.

Any idea what I should look at? (Full package log attached)

Thanks. Corneel.

UATHelper: Packaging (HTML5): emcc: error: C:\ue4-4.24.3-html5\Engine\Platforms\HTML5\Source\ThirdParty\PhysX3\PhysX_3.4\lib-1.39.18-up-mt\PhysX3_O2.a: No such file or directory ("C:\ue4-4.24.3-html5\Engine\Platforms\HTML5\Source\ThirdParty\PhysX3\PhysX_3.4\lib-1.39.18-up-mt\PhysX3_O2.a" was expected to be an input file, based on the commandline argument s provided) PackagingResults: Error: C:\ue4-4.24.3-html5\Engine\Platforms\HTML5\Source\ThirdParty\PhysX3\PhysX_3.4\lib-1.39.18-up-mt\PhysX3_O2.a: No such file or directory ("C:\ue4-4.24.3-html5\Engine\Platforms\HTML5\Source\ThirdParty\PhysX3\PhysX_3.4\lib-1.39.18-up-mt\PhysX3_O2.a" was expected to be an input file, based on the commandline arguments provided) UATHelper: Packaging (HTML5): Took 714.0742722s to run UnrealBuildTool.exe, ExitCode=5

PackageLog.txt

ZeusLT commented 3 years ago

I assume your comment https://github.com/UnrealEngineHTML5/Documentation/issues/5#issuecomment-690816784 there means you found a solution?

corneel commented 3 years ago

No that is a different problem. I have not been able to get past this problem when packaging.

ZeusLT commented 3 years ago

You need to complete "HTML5Setup.sh" without errors, so temporarily edit "Build_All_HTML5_libs.sh" and comment out libraries you already have leaving only physx like I said in this comment: https://github.com/UnrealEngineHTML5/Documentation/issues/5#issuecomment-653133458 And launch "HTML5Setup.sh" again. After that missing files should be there.

corneel commented 3 years ago

Ok I understand so the original issue that caused the script to fail could have caused this issue. I am just going to start with a fresh clone and run all the jobs again.

ZeusLT commented 3 years ago

That's unnecessary, just rerun setup script with commented out parts

corneel commented 3 years ago

I am glad I did do it over. I discovered that even though HTML5Setup.sh completed successfully we seem to have a silent failure with the PhysX part of the build. This is what I see in the log:

cd /d E:\ue4-4.24.3-html5\Engine\Platforms\HTML5\Intermediate\1.39.18-up-mt\PhysX3_BUILD\BUILD_O3\APEX\physx_bin && "C:\Program Files\CMake\bin\cmake.exe" -P CMakeFiles\PhysXVehicle.dir\cmake_clean_target.cmake cd /d E:\ue4-4.24.3-html5\Engine\Platforms\HTML5\Intermediate\1.39.18-up-mt\PhysX3_BUILD\BUILD_O3\APEX\physx_bin && "C:\Program Files\CMake\bin\cmake.exe" -E cmake_link_script CMakeFiles\PhysXVehicle.dir\link.txt --verbose=1 E:\ue4-4.24.3-html5\Engine\Platforms\HTML5\Build\emsdk\emsdk-1.39.18\upstream\emscripten\emar.bat qc PhysX3VehicleO3.a CMakeFiles/PhysXVehicle.dir/E/ue4-4.24.3-html5/Engine/Source/ThirdParty/PhysX3/PhysX3.4/Source/PhysXVehicle/src/PxVehicleComponents.cpp.o CMakeFiles/PhysXVehicle.dir/E/ue4-4.24.3-html5/Engine/Source/ThirdParty/PhysX3/PhysX3.4/Source/PhysXVehicle/src/PxVehicleDrive.cpp.o CMakeFiles/PhysXVehicle.dir/E/ue4-4.24.3-html5/Engine/Source/ThirdParty/PhysX3/PhysX3.4/Source/PhysXVehicle/src/PxVehicleDrive4W.cpp.o CMakeFiles/PhysXVehicle.dir/E/ue4-4.24.3-html5/Engine/Source/ThirdParty/PhysX3/PhysX3.4/Source/PhysXVehicle/src/PxVehicleDriveNW.cpp.o CMakeFiles/PhysXVehicle.dir/E/ue4-4.24.3-html5/Engine/Source/ThirdParty/PhysX3/PhysX3.4/Source/PhysXVehicle/src/PxVehicleDriveTank.cpp.o CMakeFiles/PhysXVehicle.dir/E/ue4-4.24.3-html5/Engine/Source/ThirdParty/PhysX3/PhysX3.4/Source/PhysXVehicle/src/PxVehicleMetaData.cpp.o CMakeFiles/PhysXVehicle.dir/E/ue4-4.24.3-html5/Engine/Source/ThirdParty/PhysX3/PhysX3.4/Source/PhysXVehicle/src/PxVehicleNoDrive.cpp.o CMakeFiles/PhysXVehicle.dir/E/ue4-4.24.3-html5/Engine/Source/ThirdParty/PhysX3/PhysX3.4/Source/PhysXVehicle/src/PxVehicleSDK.cpp.o CMakeFiles/PhysXVehicle.dir/E/ue4-4.24.3-html5/Engine/Source/ThirdParty/PhysX3/PhysX_3.4/Source/PhysXVehicle/src/PxVehicleSerialization.cpp.o CMakeFiles/PhysXVehicle.dir/74b03f80677038ea0f7d22e4630bb60c/ThirdParty/PhysX3/PhysX3.4/Source/PhysXVehicle/src/PxVehicleSuspWheelTire4.cpp.o CMakeFiles/PhysXVehicle.dir/E/ue4-4.24.3-html5/Engine/Source/ThirdParty/PhysX3/PhysX3.4/Source/PhysXVehicle/src/PxVehicleTireFriction.cpp.o CMakeFiles/PhysXVehicle.dir/E/ue4-4.24.3-html5/Engine/Source/ThirdParty/PhysX3/PhysX3.4/Source/PhysXVehicle/src/PxVehicleUpdate.cpp.o CMakeFiles/PhysXVehicle.dir/E/ue4-4.24.3-html5/Engine/Source/ThirdParty/PhysX3/PhysX3.4/Source/PhysXVehicle/src/PxVehicleWheels.cpp.o CMakeFiles/PhysXVehicle.dir/E/ue4-4.24.3-html5/Engine/Source/ThirdParty/PhysX3/PhysX3.4/Source/PhysXVehicle/src/VehicleUtilControl.cpp.o CMakeFiles/PhysXVehicle.dir/E/ue4-4.24.3-html5/Engine/Source/ThirdParty/PhysX3/PhysX3.4/Source/PhysXVehicle/src/VehicleUtilSetup.cpp.o CMakeFiles/PhysXVehicle.dir/E/ue4-4.24.3-html5/Engine/Source/ThirdParty/PhysX3/PhysX_3.4/Source/PhysXVehicle/src/VehicleUtilTelemetry.cpp.o CMakeFiles/PhysXVehicle.dir/802a2351850f84b304f941306bab910d/PhysXVehicle/src/PhysXMetaData/src/PxVehicleAutoGeneratedMetaDataObjects.cpp.o CMakeFiles/PhysXVehicle.dir/c23ee1412331437f081c2f0966b2c7dc/Source/PhysXVehicle/src/PhysXMetaData/src/PxVehicleMetaDataObjects.cpp.o E:\ue4-4.24.3-html5\Engine\Platforms\HTML5\Build\emsdk\emsdk-1.39.18\upstream\emscripten\emranlib.bat PhysX3Vehicle_O3.amingw32-make.exe[2]: Leaving directory 'E:/ue4-4.24.3-html5/Engine/Platforms/HTML5/Intermediate/1.39.18-up-mt/PhysX3/_BUILD/BUILD_O3/APEX' mingw32-make.exe[2]: write error: stdout CMakeFiles\Makefile2:657: recipe for target 'physx_bin/CMakeFiles/PhysXVehicle.dir/all' failed mingw32-make.exe[1]: [physx_bin/CMakeFiles/PhysXVehicle.dir/all] Error 1 mingw32-make.exe[1]: Leaving directory 'E:/ue4-4.24.3-html5/Engine/Platforms/HTML5/Intermediate/1.39.18-up-mt/PhysX3/_BUILD/BUILD_O3/APEX' mingw32-make.exe[1]: write error: stdout Makefile:102: recipe for target 'all' failed mingw32-make.exe: [all] Error 1

I then noticed that PhysX3Common.a also failed in the same way.

corneel commented 3 years ago

I rerun the build for Thirdpart and got this error: "C:\Program Files\CMake\bin\cmake.exe" -E cmake_link_script CMakeFiles\LowLevelCloth.dir\link.txt --verbose=1 E:\ue4-4.24.3-html5\Engine\Platforms\HTML5\Build\emsdk\emsdk-1.39.18\upstream\emscripten\emar.bat qc LowLevelClothO3.a CMakeFiles/LowLevelCloth.dir/E/ue4-4.24.3-html5/Engine/Source/ThirdParty/PhysX3/PhysX3.4/Source/LowLevelCloth/src/Allocator.cpp.o CMakeFiles/LowLevelCloth.dir/E/ue4-4.24.3-html5/Engine/Source/ThirdParty/PhysX3/PhysX3.4/Source/LowLevelCloth/src/Factory.cpp.o CMakeFiles/LowLevelCloth.dir/E/ue4-4.24.3-html5/Engine/Source/ThirdParty/PhysX3/PhysX3.4/Source/LowLevelCloth/src/PhaseConfig.cpp.o CMakeFiles/LowLevelCloth.dir/E/ue4-4.24.3-html5/Engine/Source/ThirdParty/PhysX3/PhysX3.4/Source/LowLevelCloth/src/SwCloth.cpp.o CMakeFiles/LowLevelCloth.dir/E/ue4-4.24.3-html5/Engine/Source/ThirdParty/PhysX3/PhysX3.4/Source/LowLevelCloth/src/SwClothData.cpp.o CMakeFiles/LowLevelCloth.dir/E/ue4-4.24.3-html5/Engine/Source/ThirdParty/PhysX3/PhysX3.4/Source/LowLevelCloth/src/SwCollision.cpp.o CMakeFiles/LowLevelCloth.dir/E/ue4-4.24.3-html5/Engine/Source/ThirdParty/PhysX3/PhysX3.4/Source/LowLevelCloth/src/SwFabric.cpp.o CMakeFiles/LowLevelCloth.dir/E/ue4-4.24.3-html5/Engine/Source/ThirdParty/PhysX3/PhysX3.4/Source/LowLevelCloth/src/SwFactory.cpp.o CMakeFiles/LowLevelCloth.dir/E/ue4-4.24.3-html5/Engine/Source/ThirdParty/PhysX3/PhysX3.4/Source/LowLevelCloth/src/SwInterCollision.cpp.o CMakeFiles/LowLevelCloth.dir/E/ue4-4.24.3-html5/Engine/Source/ThirdParty/PhysX3/PhysX3.4/Source/LowLevelCloth/src/SwSelfCollision.cpp.o CMakeFiles/LowLevelCloth.dir/E/ue4-4.24.3-html5/Engine/Source/ThirdParty/PhysX3/PhysX3.4/Source/LowLevelCloth/src/SwSolver.cpp.o CMakeFiles/LowLevelCloth.dir/E/ue4-4.24.3-html5/Engine/Source/ThirdParty/PhysX3/PhysX3.4/Source/LowLevelCloth/src/SwSolverKernel.cpp.o CMakeFiles/LowLevelCloth.dir/E/ue4-4.24.3-html5/Engine/Source/ThirdParty/PhysX3/PhysX_3.4/Source/LowLevelCloth/src/TripletScheduler.cpp.o E:\ue4-4.24.3-html5\Engine\Platforms\HTML5\Build\emsdk\emsdk-1.39.18\upstream\emscripten\emranlib.bat PxFoundation_O3.a CMakeFiles\PhysXExtensions.dir\build.make:965: recipe for target 'CMakeFiles/PhysXExtensions.dir/depend' failed mingw32-make.exe[2]: *** [CMakeFiles/PhysXExtensions.dir/depend] Error -1073741819

ZeusLT commented 3 years ago

Yes, this is exactly what I said, have you tried to do what I asked? Comment out other libraries and rerun the setup?

corneel commented 3 years ago

Ok I went through the same process in another instance of the same UE project I have. I attached three log files. First for the first run, the second and third with everything commented out except thirdparty library compiles. Notice each time it ends with success but there are failures. Also, rerunning the thirdparty compiles gave a different result than the first time. There seems to be an issue with the PhysX compiles but I am not sure what.

HTML5Setup.txt HTML5SetupThirdparty.txt HTML5SetupThirdparty2.txt

ZeusLT commented 3 years ago

Did you comment out all of the third party libraries but physx? Edit: Exactly like in this comment https://github.com/UnrealEngineHTML5/Documentation/issues/5#issuecomment-653133458

corneel commented 3 years ago

Ok I did this time with the same result. I am going to do a few sanity checks this side to see if I can figure something out.

w84death commented 3 years ago

@ZeusLT: I have the same problem. I commented the libs and tried to compile only PhysX. Unforutantely there are still problems.

Here's the last few lines of the log: `+ PHYSX_SYSTEM=PxShared

EDIT: Ubuntu 20.04

ZeusLT commented 3 years ago

@w84death If you have older version and its trying to build newer one, then there would be problems, maybe it's time you upgrade to the latest? But it doesn't make much sense as to why would that happen.

Also, "./build_html5_PhysX3.sh: line 163: cd: too many arguments" 163 line: "cd $HOME/$UE_EMVER_LIBPATH/PhysX3" does the path /media/kj/Datastorage/Unreal Projects/UnrealEngine-4.24-html5/Engine/Platforms/HTML5/Intermediate/1.39.0-fc/PhysX3 seem ok to you? might be missing quotes around the path

And can you check what is in the line 10 of HTML5Setup.sh? Should be EMVER="1.38.0" if you are actually using that version

w84death commented 3 years ago

@ZeusLT thanks!

my bad, it is 1.39 I just have older than you mentioned in your comment.

Also, yes my path have space so adding quotes helps. I needed to add it to the mkdir also. Other mkdirs have this so this is a bug to fix ;)

Now I have a new problem:

`

distutils missing. Is is something that should be there from previous compilations? The bug with missing quotes could be in some more places.

EDIT: I fixed the missing quotes in other buildhtml5* files. I also installed the python3-distutils. Now I'm running the HTML5Setup.sh all over again. Will report how it ended when it's all done.

w84death commented 3 years ago

Report back: I give up with fixing all the comas. I mean I fix them in the end but due to stopping the script proces in random places it mess up with sources.

So I downloaded the repo once again. Now moved to the directory without spaces. It compiles perfectly fine!

But. This "play" command brakes. Glad that it is after the success. So I just comment out the script that compiles libs and re run main script to finish work skipping play command. I installed sox now so it would not fail again but I don't need run the script anymore.

So in my case the only problem was the space in the path. And need for apt install sox.

corneel commented 3 years ago

I finally got a chance to test again. It is bizarre but I started over and ran through the whole install. I ran HTML5Setup.sh twice because I was trying to collect the log but Git Bash's buffers were not big enough. Then I simply built the whole solution after generating the VS solution file. The First Person project packaged for HTML5 and worked the first time.

corneel commented 3 years ago

So I guess we can close the issue although I still don't know what went wrong.