volumetric-clouds icon indicating copy to clipboard operation
volumetric-clouds copied to clipboard

Linux compile error with compile the assimp submodule.

Open robertosfield opened this issue 1 year ago • 1 comments

Thanks for creating and open sourcing this example. I thought I'd try and build it on my Kubuntu 22.04 but got compile error when attempting to compile the assimp submodule. I looks to be a CMake C++ standard selection issue.

$ make
[  8%] Built target glfw
Consolidate compiler generated dependencies of target assimp
[  8%] Building CXX object external/dw-sample-framework/external/assimp/code/CMakeFiles/assimp.dir/Common/BaseProcess.cpp.o
In file included from /home/robert/3rdParty/volumetric-clouds/external/dw-sample-framework/external/assimp/include/assimp/GenericProperty.h:52,
                 from /home/robert/3rdParty/volumetric-clouds/external/dw-sample-framework/external/assimp/code/Common/BaseProcess.h:46,
                 from /home/robert/3rdParty/volumetric-clouds/external/dw-sample-framework/external/assimp/code/Common/BaseProcess.cpp:44:
/home/robert/3rdParty/volumetric-clouds/external/dw-sample-framework/external/assimp/include/assimp/Importer.hpp:505:16: error: ‘exception_ptr’ in namespace ‘std’ does not name a type; did you mean ‘exception’?
  505 |     const std::exception_ptr& GetException() const;
      |                ^~~~~~~~~~~~~
      |                exception
In file included from /home/robert/3rdParty/volumetric-clouds/external/dw-sample-framework/external/assimp/code/Common/BaseProcess.cpp:45:
/home/robert/3rdParty/volumetric-clouds/external/dw-sample-framework/external/assimp/code/Common/Importer.h:104:10: error: ‘exception_ptr’ in namespace ‘std’ does not name a type; did you mean ‘exception’?
  104 |     std::exception_ptr mException;
      |          ^~~~~~~~~~~~~
      |          exception
/home/robert/3rdParty/volumetric-clouds/external/dw-sample-framework/external/assimp/code/Common/Importer.h: In constructor ‘Assimp::ImporterPimpl::ImporterPimpl()’:
/home/robert/3rdParty/volumetric-clouds/external/dw-sample-framework/external/assimp/code/Common/Importer.h:139:9: error: class ‘Assimp::ImporterPimpl’ does not have any field named ‘mException’
  139 |         mException(),
      |         ^~~~~~~~~~

If I compile assimp directly myself it works fine, also when I come it as a module with the vsgFramework so I know that is should work, I tried adding to the root CMakeLists.txt :

set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON)

But this hasn't helped. Unfortunately I don't have time to keep on hunting for the cause right now, hopefully the fix will be obvious.

robertosfield avatar Mar 21 '23 15:03 robertosfield