title: Linker Errors when Building Assimp with Premake
body: <p>I'm implementing assimp 5.0.1 in an engine and I can't get to link it, I guess it's because of the way of including it, but I don't know what it is I'm doing wrong.</p>
  <p>I'm in Windows, working with Visual Studio 2019 (C++) and the steps I took were building assimp with cmake as states in the documentation and copied the folders 'code/' 'contrib/' and 'include/' in the project, inside an 'Assimp' folder. With this, I made a premake file to build it within the project of the engine (I'm using premake5 as a generator).</p>
  <p>The problem is that I'm getting 5 linker errors. I assume I'm not including some needed file in the premake. The linker errors are the next ones:
  <a href="https://i.stack.imgur.com/xiwFC.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/xiwFC.png" alt="enter image description here" /></a></p>
  <p>Including the files that contain the functions giving linker errors gives even more linker issues that I cannot solve by keep adding or including files, so I don't know exactly how to proceed.</p>
  <p>In the premake file (copied below), if I, for instance, comment some definition like &quot;ASSIMP_BUILD_NO_IFC_IMPORTER&quot;, it will trigger more linker errors (in this case for IFC functions), that's why I guess there's some wrong inclusion or something. Does anyone knows what it can be wrong? Would it be so helpful because I'm really lost, I've been with this like a week.</p>
  <p>The premake file I'm using is the next:</p>
  <pre><code>project 'Assimp'
      kind 'StaticLib'
      language &quot;C++&quot;
      cppdialect &quot;C++17&quot;
      staticruntime &quot;On&quot;
  
      targetdir (&quot;bin/&quot; .. outputdir .. &quot;/%{prj.name}&quot;)
      objdir (&quot;bin-int/&quot; .. outputdir .. &quot;/%{prj.name}&quot;)
  
      defines
      {
          -- &quot;SWIG&quot;,
          --&quot;ASSIMP_BUILD_NO_OWN_ZLIB&quot;,
          &quot;ASSIMP_BUILD_NO_X_IMPORTER&quot;,
          &quot;ASSIMP_BUILD_NO_3DS_IMPORTER&quot;,
          &quot;ASSIMP_BUILD_NO_MD3_IMPORTER&quot;,
          &quot;ASSIMP_BUILD_NO_MDL_IMPORTER&quot;,
          &quot;ASSIMP_BUILD_NO_MD2_IMPORTER&quot;,
          &quot;ASSIMP_BUILD_NO_PLY_IMPORTER&quot;,
          &quot;ASSIMP_BUILD_NO_ASE_IMPORTER&quot;,
          -- &quot;ASSIMP_BUILD_NO_OBJ_IMPORTER&quot;,
          &quot;ASSIMP_BUILD_NO_AMF_IMPORTER&quot;,
          &quot;ASSIMP_BUILD_NO_HMP_IMPORTER&quot;,
          &quot;ASSIMP_BUILD_NO_SMD_IMPORTER&quot;,
          &quot;ASSIMP_BUILD_NO_MDC_IMPORTER&quot;,
          &quot;ASSIMP_BUILD_NO_MD5_IMPORTER&quot;,
          &quot;ASSIMP_BUILD_NO_STL_IMPORTER&quot;,
          &quot;ASSIMP_BUILD_NO_LWO_IMPORTER&quot;,
          &quot;ASSIMP_BUILD_NO_DXF_IMPORTER&quot;,
          &quot;ASSIMP_BUILD_NO_NFF_IMPORTER&quot;,
          &quot;ASSIMP_BUILD_NO_RAW_IMPORTER&quot;,
          &quot;ASSIMP_BUILD_NO_OFF_IMPORTER&quot;,
          &quot;ASSIMP_BUILD_NO_AC_IMPORTER&quot;,
          &quot;ASSIMP_BUILD_NO_BVH_IMPORTER&quot;,
          &quot;ASSIMP_BUILD_NO_IRRMESH_IMPORTER&quot;,
          &quot;ASSIMP_BUILD_NO_IRR_IMPORTER&quot;,
          &quot;ASSIMP_BUILD_NO_Q3D_IMPORTER&quot;,
          &quot;ASSIMP_BUILD_NO_B3D_IMPORTER&quot;,
          &quot;ASSIMP_BUILD_NO_COLLADA_IMPORTER&quot;,
          &quot;ASSIMP_BUILD_NO_TERRAGEN_IMPORTER&quot;,
          &quot;ASSIMP_BUILD_NO_CSM_IMPORTER&quot;,
          &quot;ASSIMP_BUILD_NO_3D_IMPORTER&quot;,
          &quot;ASSIMP_BUILD_NO_LWS_IMPORTER&quot;,
          &quot;ASSIMP_BUILD_NO_OGRE_IMPORTER&quot;,
          &quot;ASSIMP_BUILD_NO_OPENGEX_IMPORTER&quot;,
          &quot;ASSIMP_BUILD_NO_MS3D_IMPORTER&quot;,
          &quot;ASSIMP_BUILD_NO_COB_IMPORTER&quot;,
          &quot;ASSIMP_BUILD_NO_BLEND_IMPORTER&quot;,
          &quot;ASSIMP_BUILD_NO_Q3BSP_IMPORTER&quot;,
          &quot;ASSIMP_BUILD_NO_NDO_IMPORTER&quot;,
          &quot;ASSIMP_BUILD_NO_IFC_IMPORTER&quot;,
          &quot;ASSIMP_BUILD_NO_XGL_IMPORTER&quot;,
          --&quot;ASSIMP_BUILD_NO_FBX_IMPORTER&quot;,
          &quot;ASSIMP_BUILD_NO_ASSBIN_IMPORTER&quot;,
          &quot;ASSIMP_BUILD_NO_GLTF_IMPORTER&quot;,
          &quot;ASSIMP_BUILD_NO_C4D_IMPORTER&quot;,
          &quot;ASSIMP_BUILD_NO_3MF_IMPORTER&quot;,
          &quot;ASSIMP_BUILD_NO_X3D_IMPORTER&quot;,
          &quot;ASSIMP_BUILD_NO_MMD_IMPORTER&quot;,
  
          &quot;ASSIMP_BUILD_NO_STEP_EXPORTER&quot;,
          &quot;ASSIMP_BUILD_NO_SIB_IMPORTER&quot;,     
          -- &quot;ASSIMP_BUILD_NO_MAKELEFTHANDED_PROCESS&quot;,
          -- &quot;ASSIMP_BUILD_NO_FLIPUVS_PROCESS&quot;,
          -- &quot;ASSIMP_BUILD_NO_FLIPWINDINGORDER_PROCESS&quot;,
          -- &quot;ASSIMP_BUILD_NO_CALCTANGENTS_PROCESS&quot;,
          &quot;ASSIMP_BUILD_NO_JOINVERTICES_PROCESS&quot;,
          -- &quot;ASSIMP_BUILD_NO_TRIANGULATE_PROCESS&quot;,
          &quot;ASSIMP_BUILD_NO_GENFACENORMALS_PROCESS&quot;,
          -- &quot;ASSIMP_BUILD_NO_GENVERTEXNORMALS_PROCESS&quot;,
          &quot;ASSIMP_BUILD_NO_REMOVEVC_PROCESS&quot;,
          &quot;ASSIMP_BUILD_NO_SPLITLARGEMESHES_PROCESS&quot;,
          &quot;ASSIMP_BUILD_NO_PRETRANSFORMVERTICES_PROCESS&quot;,
          &quot;ASSIMP_BUILD_NO_LIMITBONEWEIGHTS_PROCESS&quot;,
          -- &quot;ASSIMP_BUILD_NO_VALIDATEDS_PROCESS&quot;,
          &quot;ASSIMP_BUILD_NO_IMPROVECACHELOCALITY_PROCESS&quot;,
          &quot;ASSIMP_BUILD_NO_FIXINFACINGNORMALS_PROCESS&quot;,
          &quot;ASSIMP_BUILD_NO_REMOVE_REDUNDANTMATERIALS_PROCESS&quot;,
          &quot;ASSIMP_BUILD_NO_FINDINVALIDDATA_PROCESS&quot;,
          &quot;ASSIMP_BUILD_NO_FINDDEGENERATES_PROCESS&quot;,
          &quot;ASSIMP_BUILD_NO_SORTBYPTYPE_PROCESS&quot;,
          &quot;ASSIMP_BUILD_NO_GENUVCOORDS_PROCESS&quot;,
          &quot;ASSIMP_BUILD_NO_TRANSFORMTEXCOORDS_PROCESS&quot;,
          &quot;ASSIMP_BUILD_NO_FINDINSTANCES_PROCESS&quot;,
          &quot;ASSIMP_BUILD_NO_OPTIMIZEMESHES_PROCESS&quot;,
          &quot;ASSIMP_BUILD_NO_OPTIMIZEGRAPH_PROCESS&quot;,
          &quot;ASSIMP_BUILD_NO_SPLITBYBONECOUNT_PROCESS&quot;,
          &quot;ASSIMP_BUILD_NO_DEBONE_PROCESS&quot;,
          &quot;ASSIMP_BUILD_NO_EMBEDTEXTURES_PROCESS&quot;,
          &quot;ASSIMP_BUILD_NO_GLOBALSCALE_PROCESS&quot;,
      }
  
      files
      {
          &quot;include/**&quot;,
          &quot;code/Common/Assimp.cpp&quot;,
          &quot;code/Common/BaseImporter.cpp&quot;,
          &quot;code/Collada/ColladaLoader.cpp&quot;,
          &quot;code/Collada/ColladaParser.cpp&quot;,
          &quot;code/Common/CreateAnimMesh.cpp&quot;,
          &quot;code/Ply/PlyParser.cpp&quot;,
          &quot;code/Ply/PlyLoader.cpp&quot;,
          &quot;code/Common/BaseProcess.cpp&quot;,
          &quot;code/PostProcessing/EmbedTexturesProcess.cpp&quot;,
          &quot;code/PostProcessing/ConvertToLHProcess.cpp&quot;,
          &quot;code/Common/DefaultIOStream.cpp&quot;,
          &quot;code/Common/DefaultIOSystem.cpp&quot;,
          &quot;code/Common/DefaultLogger.cpp&quot;,
          &quot;code/PostProcessing/GenVertexNormalsProcess.cpp&quot;,
          &quot;code/Common/Importer.cpp&quot;,
          &quot;code/Common/ImporterRegistry.cpp&quot;,
          &quot;code/Material/MaterialSystem.cpp&quot;,
          &quot;code/Common/PostStepRegistry.cpp&quot;,
          &quot;code/PostProcessing/ProcessHelper.cpp&quot;,
          &quot;code/Common/scene.cpp&quot;,
          &quot;code/Common/ScenePreprocessor.cpp&quot;,
          &quot;code/PostProcessing/ScaleProcess.cpp&quot;,
          &quot;code/Common/SGSpatialSort.cpp&quot;,
          &quot;code/Common/SkeletonMeshBuilder.cpp&quot;,
          &quot;code/Common/SpatialSort.cpp&quot;,
          &quot;code/PostProcessing/TriangulateProcess.cpp&quot;,
          &quot;code/PostProcessing/ValidateDataStructure.cpp&quot;,
          &quot;code/Common/Version.cpp&quot;,
          &quot;code/Common/VertexTriangleAdjacency.cpp&quot;,
          &quot;code/Obj/ObjFileImporter.cpp&quot;,
          &quot;code/Obj/ObjFileMtlImporter.cpp&quot;,
          &quot;code/FBX/FBXAnimation.cpp&quot;,
          &quot;code/FBX/FBXBinaryTokenizer.cpp&quot;,
          &quot;code/FBX/FBXConverter.cpp&quot;,
          &quot;code/FBX/FBXDeformer.cpp&quot;,
          &quot;code/FBX/FBXDocument.cpp&quot;,
          &quot;code/FBX/FBXDocumentUtil.cpp&quot;,
          &quot;code/FBX/FBXImporter.cpp&quot;,
          &quot;code/FBX/FBXMaterial.cpp&quot;,
          &quot;code/FBX/FBXMeshGeometry.cpp&quot;,
          &quot;code/FBX/FBXModel.cpp&quot;,
          &quot;code/FBX/FBXNodeAttribute.cpp&quot;,
          &quot;code/FBX/FBXParser.cpp&quot;,
          &quot;code/FBX/FBXProperties.cpp&quot;,
          &quot;code/FBX/FBXTokenizer.cpp&quot;,
          &quot;code/FBX/FBXExporter.cpp&quot;,
          &quot;code/FBX/FBXExportNode.cpp&quot;,
          &quot;code/FBX/FBXExportProperty.cpp&quot;,
          &quot;code/FBX/FBXUtil.cpp&quot;,
          &quot;code/Obj/ObjFileParser.cpp&quot;,
          &quot;code/glTF/glTFImporter.cpp&quot;,
          &quot;code/glTF2/glTF2Importer.cpp&quot;,
          &quot;code/PostProcessing/MakeVerboseFormat.cpp&quot;,
          &quot;code/PostProcessing/CalcTangentsProcess.cpp&quot;,
          &quot;code/PostProcessing/ScaleProcess.cpp&quot;,
          &quot;code/PostProcessing/EmbedTexturesProcess.cpp&quot;,
          &quot;contrib/irrXML/*&quot;,
      }
  
      includedirs
      {
          &quot;include&quot;,
          &quot;contrib/irrXML&quot;,
          &quot;contrib/rapidjson/include&quot;,
          &quot;code&quot;
      }
  
      -- And more lines of platform-related configurations that have nothing to do
  </code></pre>