Compile fbx from mac or linux

I’ve compiled MGCB on linux, tried to compile fbx file, got this error:

error: Importer ‘FbxImporter’ had unexpected failure!
Assimp.AssimpException: Error loading unmanaged library from path: Assimp64.so, error detail:
Assimp64.so: cannot open shared object file: No such file or directory
at Assimp.Unmanaged.AssimpLibraryLinuxImplementation.NativeLoadLibrary (System.String path) [0x00000] in :0
at Assimp.Unmanaged.AssimpLibraryImplementation.LoadAssimpLibrary (System.String path) [0x00000] in :0
at Assimp.Unmanaged.AssimpLibrary.LoadLibrary () [0x00000] in :0
at Assimp.Unmanaged.AssimpLibrary.LoadIfNotLoaded () [0x00000] in :0
at Assimp.Unmanaged.AssimpLibrary.CreatePropertyStore () [0x00000] in :0
at Assimp.AssimpContext.CreateConfigs () [0x00000] in :0
at Assimp.AssimpContext.PrepareImport () [0x00000] in :0
at Assimp.AssimpContext.ImportFile (System.String file, PostProcessSteps postProcessFlags) [0x00000] in :0
at Microsoft.Xna.Framework.Content.Pipeline.OpenAssetImporter.Import (System.String filename, Microsoft.Xna.Framework.Content.Pipeline.ContentImporterContext context) [0x00000] in :0
at Microsoft.Xna.Framework.Content.Pipeline.FbxImporter.Import (System.String filename, Microsoft.Xna.Framework.Content.Pipeline.ContentImporterContext context) [0x00000] in :0
at Microsoft.Xna.Framework.Content.Pipeline.ContentImporter`1[Microsoft.Xna.Framework.Content.Pipeline.Graphics.NodeContent].Microsoft.Xna.Framework.Content.Pipeline.IContentImporter.Import (System.String filename, Microsoft.Xna.Framework.Content.Pipeline.ContentImporterContext context) [0x00000] in :0
at MonoGame.Framework.Content.Pipeline.Builder.PipelineManager.ProcessContent (MonoGame.Framework.Content.Pipeline.Builder.PipelineBuildEvent pipelineEvent) [0x00000] in :0

so I saw that it needs a library…
installed libassimp, still the same error
then I also looked a bit into assimp code, saw this:

internal static class AssimpDefaultLibraryPath {
        public const String DefaultWindows32BitPath = "Assimp32.dll";
        public const String DefaultWindows64BitPath = "Assimp64.dll";
 
        public const String DefaultLinux32BitPath = "Assimp32.so";
        public const String DefaultLinux64BitPath = "Assimp64.so";
 
        public const String DefaultMac32BitPath = "libassimp32.dylib";
        public const String DefaultMac64BitPath = "libassimp64.dylib";

ok, needs so and dylib files for linux and mac, and so I compiled assimp from source and got nowhere…
I saw: http://code.google.com/p/assimp-net/ but it only offered assimp32 and assimp64 in dll format
My question: Where are the so and dylib files found, or from which source are they built?

For Protogame, we preload the Assimp assembly on Linux, which prevents Assimp from trying to load it from the default path: https://github.com/hach-que/Protogame/blob/2ca624d76f0d435f8b4fc66f589288da5a29ee8d/Protogame/Assets/Models/FbxReader.cs#L459

This uses .so files which I built and store in https://code.redpointsoftware.com.au/diffusion/PTPB/browse/master/Linux/. However, these are likely to be replaced with a Protobuild package in the future, so I wouldn’t recommend adding that repository as a Git submodule (instead just maybe copy the .so files out?)

Thank you, works perfectly :smiley: (creepy smiley face)