Bonjour !
Depuis quelques temps, je développe un viewer 3d en c++ dont voici le lien : https://github.com/martantoine/VoxEngine.
Celui utilise OpenGL, GLFW, freetype, GLM, stb_image et assimp.
Tout fonctionne sans problèmes sur windows, c'est ainsi que j'ai donc essayé de le porter sur le web à l'aide d'emscripten, j'ai reussi à utiliser les bibliotheques GLFW, GLM et stb_image.
C'est maintenant au tour d'assimp d'être compiler pour que que je puisse charger des fichiers 3d sur le web. Mais, si je suis ici c'est que j'ai un problème, et celui-ci est à cause d'Assimp : je ne sais pas comment créer un .bc ou .so ou .a (à vrai dire je ne sais même pas quel doit être l'extension
) pour pouvoir ensuite l'inclure dans le projet au moment de la compilation. Un des fichiers .so à l'air de fonctionner mais j'ai ces erreurs au moment de la compilation du projet complet (ne pas prendre compte du warning) :
Voici le batch que j'utilise pour compiler Assimp :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 F:\Documents\VoxEngine\VoxEngine-core>call em++ Emscripten/libassimp.so src/Entities/Components/Lights/PointLight.cpp src/Entities/Components/Miscs/Camera.cpp src/Entities/Components/Renderable/Shapes/Rectangle.cpp src/Entities/Components/Renderable/Renderable.cpp src/Entities/Components/EntityComponent.cpp src/Entities/Entity.cpp src/Graphics/Buffers/EBO.cpp src/Graphics/Buffers/Texture.cpp src/Graphics/Buffers/VAO.cpp src/Graphics/Buffers/VBO.cpp src/Graphics/Renderers/SimpleRenderer2D.cpp src/Graphics/Shaders/LightingShader.cpp src/Graphics/Shaders/Shader.cpp src/Graphics/Window.cpp src/main.cpp -s USE_GLFW=3 --preload-file Emscripten/fond.png --preload-file Emscripten/BasicLightingWeb.frag --preload-file Emscripten/BasicLightingWeb.vert Emscripten/libassimp.so -s DEMANGLE_SUPPORT=1 -std=c++1z -s FULL_ES3=1 -o Emscripten/code.html src/Entities/Components/Lights/PointLight.cpp:1:9: warning: #pragma once in main file #pragma once ^ 1 warning generated. warning: emitted code will contain very large numbers of local variables, which is bad for performance (build to JS with -O2 or above to avoid this - make sure to do so both on source files, and during 'linking') warning: unresolved symbol: zip_close warning: unresolved symbol: _ZN6Assimp14ExportSceneX3DEPKcPNS_8IOSystemEPK7aiScenePKNS_16ExportPropertiesE warning: unresolved symbol: _ZN6Assimp18ExportSceneColladaEPKcPNS_8IOSystemEPK7aiScenePKNS_16ExportPropertiesE warning: unresolved symbol: _ZN2UE10UEGraphics16SimpleRenderer3DC1ERNS0_6ShaderE warning: unresolved symbol: compress2 warning: unresolved symbol: _ZN2UE10UEGraphics16SimpleRenderer3D6RenderERNS_7UEntity6EntityE warning: unresolved symbol: zip_entry_close warning: unresolved symbol: _ZN6Assimp14ExportScene3DSEPKcPNS_8IOSystemEPK7aiScenePKNS_16ExportPropertiesE warning: unresolved symbol: _ZN6Assimp16ExportSceneXFileEPKcPNS_8IOSystemEPK7aiScenePKNS_16ExportPropertiesE warning: unresolved symbol: zip_entry_write warning: unresolved symbol: zip_entry_open warning: unresolved symbol: zip_open warning: unresolved symbol: _ZN2UE7UEntity5ModelC1EPKc
J'espère que j'aurai été assez clair et que vous pourrez m'aider.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 em++ "ACLoader.cpp" "ASELoader.cpp" "ASEParser.cpp" "AssbinExporter.cpp" "AssbinLoader.cpp" "Assimp.cpp" "AssimpCExport.cpp" "AssxmlExporter.cpp" "B3DImporter.cpp" "BaseImporter.cpp" "BaseProcess.cpp" "Bitmap.cpp" "BVHLoader.cpp" "CalcTangentsProcess.cpp" "CInterfaceIOWrapper.cpp" "COBLoader.cpp" "ColladaLoader.cpp" "ColladaParser.cpp" "ComputeUVMappingProcess.cpp" "ConvertToLHProcess.cpp" "CreateAnimMesh.cpp" "CSMLoader.cpp" "D3MFExporter.cpp" "D3MFImporter.cpp" "D3MFOpcPackage.cpp" "DeboneProcess.cpp" "DefaultIOStream.cpp" "DefaultIOSystem.cpp" "DefaultLogger.cpp" "DXFLoader.cpp" "Exporter.cpp" "FindDegenerates.cpp" "FindInstancesProcess.cpp" "FindInvalidDataProcess.cpp" "FIReader.cpp" "FixNormalsStep.cpp" "GenFaceNormalsProcess.cpp" "GenVertexNormalsProcess.cpp" "glTF2Exporter.cpp" "glTF2Importer.cpp" "glTFExporter.cpp" "glTFImporter.cpp" "HMPLoader.cpp" "IFCBoolean.cpp" "IFCCurve.cpp" "IFCGeometry.cpp" "IFCLoader.cpp" "IFCMaterial.cpp" "IFCOpenings.cpp" "IFCProfile.cpp" "IFCReaderGen1.cpp" "IFCReaderGen2.cpp" "IFCUtil.cpp" "Importer.cpp" "ImporterRegistry.cpp" "ImproveCacheLocality.cpp" "IRRLoader.cpp" "IRRMeshLoader.cpp" "IRRShared.cpp" "JoinVerticesProcess.cpp" "LimitBoneWeightsProcess.cpp" "LWOAnimation.cpp" "LWOBLoader.cpp" "LWOLoader.cpp" "LWOMaterial.cpp" "LWSLoader.cpp" "MakeVerboseFormat.cpp" "MaterialSystem.cpp" "MD2Loader.cpp" "MD3Loader.cpp" "MD5Loader.cpp" "MD5Parser.cpp" "MDCLoader.cpp" "MDLLoader.cpp" "MDLMaterialLoader.cpp" "MMDImporter.cpp" "MMDPmxParser.cpp" "MS3DLoader.cpp" "NDOLoader.cpp" "NFFLoader.cpp" "ObjExporter.cpp" "ObjFileImporter.cpp" "ObjFileMtlImporter.cpp" "ObjFileParser.cpp" "OFFLoader.cpp" "OptimizeGraph.cpp" "OptimizeMeshes.cpp" "PlyExporter.cpp" "PlyLoader.cpp" "PlyParser.cpp" "PostStepRegistry.cpp" "PretransformVertices.cpp" "ProcessHelper.cpp" "RawLoader.cpp" "RemoveComments.cpp" "RemoveRedundantMaterials.cpp" "RemoveVCProcess.cpp" "ScaleProcess.cpp" "scene.cpp" "SceneCombiner.cpp" "ScenePreprocessor.cpp" "SGSpatialSort.cpp" "SIBImporter.cpp" "SkeletonMeshBuilder.cpp" "SMDLoader.cpp" "SortByPTypeProcess.cpp" "SpatialSort.cpp" "SplitByBoneCountProcess.cpp" "SplitLargeMeshes.cpp" "StandardShapes.cpp" "StepExporter.cpp" "STEPFileEncoding.cpp" "STEPFileReader.cpp" "STLExporter.cpp" "STLLoader.cpp" "Subdivision.cpp" "TargetAnimation.cpp" "TerragenLoader.cpp" "TextureTransform.cpp" "TriangulateProcess.cpp" "UnrealLoader.cpp" "ValidateDataStructure.cpp" "Version.cpp" "VertexTriangleAdjacency.cpp" -I"../include" -I"../contrib/rapidjson/include" -I"../" -std=c++11 -o libassimp.so
Merci d'avance pour votre précieuse aide![]()
Partager