Download

Unreal Engine does not contain the .lib file needed for using PhysX's CharacterController

Hello everyone,
I hope this is the right place to discuss this issue.
I am using the Unreal Engine 4.10, launcher version, and I was able to get a linker error due to PhysX3CharacterKinematic lib file missing in the Engine build I’m using. I since fixed the issue but I wanted to know: is there a particular reason for some PhysX lib files not being included with the engine or is this some sort of bug?

Now, for the details: in the project I am currently working on I need to use an extra PhysX scene running in the background, and I wanted to add a PhysX character controller to one of the actor in that scene. However using the function


PxCreateControllerManager(*mPhysXScene);

generates the following linker error:


unresolved external symbol __imp_PxCreateControllerManager

I dug a little and found out that the function is exported to its own lib/dll file, (lets say PhysX3CharacterKinematicPROFILE_x64.lib) but the Unreal Engine ThirdParty folder does not contain it.
I resolved the issue by manually adding the .lib file (compiled from PhysX “standalone” SDK sources) to the list of the libraries to use in my project’s build.cs file and everything seems to be just fine, so I really don’t understand why the file is missing in the first place.

Is the engine build from the Launcher or GitHub?
If launcher:
You are most likely going to need to get the PhysX SDK from NVIDIA.

The error means that the compiler could not find the code depedency for the function.

HTH

It is the 4.10 engine installed by the launcher.

I fixed the issue by adding manually the lib to my project’s build file, because simply copying over the file to the 4.10 engine subfolder containing all other PhysX lib files did not achieve anything.

Maybe I should have been more clear, but the real question I had was: “is there any reason for this library being missing?”. I’ll edit the opening post accordingly.

Ahh, The linker could not find the Physx Lib.