diharaw / volumetric-clouds

MIT License
127 stars 9 forks source link

Linux compile error with compile the assimp submodule. #1

Open robertosfield opened 1 year ago

robertosfield commented 1 year ago

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.

diharaw commented 1 year ago

Thanks for reporting this! Unfortunately I develop exclusively on Windows so I have no way to investigate this. Feel free to submit a PR if you manage to fix it.