Skip to content

fail build in linux #2

@sl1pkn07

Description

@sl1pkn07

Hi

i try to build this project in my linux, and i found some problesms: (using CMake 3.14.0 and GCC 8.2.1)

seems assimp cmake configuration files is named with caps. because of this, cmake failed to find it because cmake is case sensitive

CMake Error at cmake/Findassimp.cmake:74 (message):
  Could not find asset importer library
Call Stack (most recent call first):
  src/raytrace/CMakeLists.txt:9 (find_package)


-- Configuring incomplete, errors occurred!

after fix the assim problem with rename assim to ASSIM in all cmake files, failed in some cmakefiles about missing Qt options

-- Configuring done
CMake Warning (dev) in 3rdparty/spirv_reflect/CMakeLists.txt:
  AUTOGEN: No valid Qt version found for target spirv_reflect.  AUTOMOC and
  AUTORCC disabled.  Consider adding:

    find_package(Qt<QTVERSION> COMPONENTS Core)

  to your CMakeLists.txt file.
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) in 3rdparty/stb/CMakeLists.txt:
  AUTOGEN: No valid Qt version found for target stb.  AUTOMOC and AUTORCC
  disabled.  Consider adding:

    find_package(Qt<QTVERSION> COMPONENTS Core)

  to your CMakeLists.txt file.
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) in 3rdparty/volk/CMakeLists.txt:
  AUTOGEN: No valid Qt version found for target volk.  AUTOMOC and AUTORCC
  disabled.  Consider adding:

    find_package(Qt<QTVERSION> COMPONENTS Core)

  to your CMakeLists.txt file.
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) in 3rdparty/vma/CMakeLists.txt:
  AUTOGEN: No valid Qt version found for target vma.  AUTOMOC and AUTORCC
  disabled.  Consider adding:

    find_package(Qt<QTVERSION> COMPONENTS Core)

  to your CMakeLists.txt file.
This warning is for project developers.  Use -Wno-dev to suppress it.

after adding the options find_package(Qt5 COMPONENTS Core) in the conflictive files, now start build, but:

[ 16%] Building CXX object src/raytrace/CMakeFiles/Qt3DRaytrace.dir/Qt3DRaytrace_autogen/mocs_compilation.cpp.o
In file included from /home/sl1pkn07/aplicaciones/quartz/Quartz/src/raytrace/renderers/vulkan/managers/scenemanager.h:12,
                 from /home/sl1pkn07/aplicaciones/quartz/Quartz/build/src/raytrace/Qt3DRaytrace_autogen/53G42B54XP/../../../../../src/raytrace/renderers/vulkan/renderer.h:18,
                 from /home/sl1pkn07/aplicaciones/quartz/Quartz/build/src/raytrace/Qt3DRaytrace_autogen/53G42B54XP/moc_renderer.cpp:9,
                 from /home/sl1pkn07/aplicaciones/quartz/Quartz/build/src/raytrace/Qt3DRaytrace_autogen/mocs_compilation.cpp:2:
/home/sl1pkn07/aplicaciones/quartz/Quartz/src/raytrace/renderers/vulkan/glsl.h: En el constructor ‘Qt3DRaytrace::Vulkan::mat4x4::mat4x4(const QMatrix4x4&)’:
/home/sl1pkn07/aplicaciones/quartz/Quartz/src/raytrace/renderers/vulkan/glsl.h:94:14: error: ‘memcpy’ no es un miembro de ‘std’
         std::memcpy(data, m.constData(), sizeof(*this));
              ^~~~~~
/home/sl1pkn07/aplicaciones/quartz/Quartz/src/raytrace/renderers/vulkan/glsl.h:94:14: nota: suggested alternative: ‘mem_fn’
         std::memcpy(data, m.constData(), sizeof(*this));
              ^~~~~~
              mem_fn
/home/sl1pkn07/aplicaciones/quartz/Quartz/src/raytrace/renderers/vulkan/glsl.h: En el constructor ‘Qt3DRaytrace::Vulkan::mat3x4::mat3x4(const QMatrix3x4&)’:
/home/sl1pkn07/aplicaciones/quartz/Quartz/src/raytrace/renderers/vulkan/glsl.h:104:14: error: ‘memcpy’ no es un miembro de ‘std’
         std::memcpy(data, m.constData(), sizeof(*this));
              ^~~~~~
/home/sl1pkn07/aplicaciones/quartz/Quartz/src/raytrace/renderers/vulkan/glsl.h:104:14: nota: suggested alternative: ‘mem_fn’
         std::memcpy(data, m.constData(), sizeof(*this));
              ^~~~~~
              mem_fn
make[2]: *** [src/raytrace/CMakeFiles/Qt3DRaytrace.dir/build.make:78: src/raytrace/CMakeFiles/Qt3DRaytrace.dir/Qt3DRaytrace_autogen/mocs_compilation.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:501: src/raytrace/CMakeFiles/Qt3DRaytrace.dir/all] Error 2

adding #include <cstrings> in the src/raytrace/renderers/vulkan/glsl.h file solved the error, but now:

[ 22%] Building CXX object src/raytrace/CMakeFiles/Qt3DRaytrace.dir/frontend/qmaterial.cpp.o
In file included from /home/sl1pkn07/aplicaciones/quartz/Quartz/src/raytrace/frontend/qmaterial.cpp:8:
/home/sl1pkn07/aplicaciones/quartz/Quartz/src/raytrace/frontend/qabstracttexture_p.h:32:72: error: ‘unique_ptr’ no es un miembro de ‘std’
 using QTextureImageChange = Qt3DCore::QTypedPropertyUpdatedChange<std::unique_ptr<QTextureImage>>;
                                                                        ^~~~~~~~~~
/home/sl1pkn07/aplicaciones/quartz/Quartz/src/raytrace/frontend/qabstracttexture_p.h:32:72: nota: ‘std::unique_ptr’ is defined in header ‘<memory>’; did you forget to ‘#include <memory>’?
/home/sl1pkn07/aplicaciones/quartz/Quartz/src/raytrace/frontend/qabstracttexture_p.h:10:1:
+#include <memory>
 #include <Qt3DCore/private/qnode_p.h>
/home/sl1pkn07/aplicaciones/quartz/Quartz/src/raytrace/frontend/qabstracttexture_p.h:32:72:
 using QTextureImageChange = Qt3DCore::QTypedPropertyUpdatedChange<std::unique_ptr<QTextureImage>>;
                                                                        ^~~~~~~~~~
/home/sl1pkn07/aplicaciones/quartz/Quartz/src/raytrace/frontend/qabstracttexture_p.h:32:72: error: ‘unique_ptr’ no es un miembro de ‘std’
/home/sl1pkn07/aplicaciones/quartz/Quartz/src/raytrace/frontend/qabstracttexture_p.h:32:72: nota: ‘std::unique_ptr’ is defined in header ‘<memory>’; did you forget to ‘#include <memory>’?
/home/sl1pkn07/aplicaciones/quartz/Quartz/src/raytrace/frontend/qabstracttexture_p.h:32:83: error: el argumento de plantilla 1 es no válido
 using QTextureImageChange = Qt3DCore::QTypedPropertyUpdatedChange<std::unique_ptr<QTextureImage>>;
                                                                                   ^~~~~~~~~~~~~
/home/sl1pkn07/aplicaciones/quartz/Quartz/src/raytrace/frontend/qabstracttexture_p.h:33:78: error: ‘unique_ptr’ no es un miembro de ‘std’
 using QTextureImageChangePtr = Qt3DCore::QTypedPropertyUpdatedChangePtr<std::unique_ptr<QTextureImage>>;
                                                                              ^~~~~~~~~~
/home/sl1pkn07/aplicaciones/quartz/Quartz/src/raytrace/frontend/qabstracttexture_p.h:33:78: nota: ‘std::unique_ptr’ is defined in header ‘<memory>’; did you forget to ‘#include <memory>’?
/home/sl1pkn07/aplicaciones/quartz/Quartz/src/raytrace/frontend/qabstracttexture_p.h:33:78: error: ‘unique_ptr’ no es un miembro de ‘std’
/home/sl1pkn07/aplicaciones/quartz/Quartz/src/raytrace/frontend/qabstracttexture_p.h:33:78: nota: ‘std::unique_ptr’ is defined in header ‘<memory>’; did you forget to ‘#include <memory>’?
/home/sl1pkn07/aplicaciones/quartz/Quartz/src/raytrace/frontend/qabstracttexture_p.h:33:89: error: el argumento de plantilla 1 es no válido
 using QTextureImageChangePtr = Qt3DCore::QTypedPropertyUpdatedChangePtr<std::unique_ptr<QTextureImage>>;
                                                                                         ^~~~~~~~~~~~~
make[2]: *** [src/raytrace/CMakeFiles/Qt3DRaytrace.dir/build.make:156: src/raytrace/CMakeFiles/Qt3DRaytrace.dir/frontend/qmaterial.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:501: src/raytrace/CMakeFiles/Qt3DRaytrace.dir/all] Error 2

and finaly after fix the error adding #include <memory> to src/raytrace/frontend/qabstracttexture_p.h:

[ 20%] Building CXX object src/raytrace/CMakeFiles/Qt3DRaytrace.dir/backend/abstracttexture.cpp.o
/home/sl1pkn07/aplicaciones/quartz/Quartz/apps/scene2qml/importer.cpp: En la función miembro ‘Entity* Importer::processScene(const aiScene*)’:
/home/sl1pkn07/aplicaciones/quartz/Quartz/apps/scene2qml/importer.cpp:67:60: error: ‘const struct aiTexture’ has no member named ‘mFilename’
         textureComponent.name = QString::fromUtf8(texture->mFilename.C_Str());
                                                            ^~~~~~~~~
make[2]: *** [apps/scene2qml/CMakeFiles/scene2qml.dir/build.make:89: apps/scene2qml/CMakeFiles/scene2qml.dir/importer.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:1046: apps/scene2qml/CMakeFiles/scene2qml.dir/all] Error 2

i'm stuck here. how i can fix this? my coder skill is lower than poor :/. can you help me?

i can upload a PR with the finded fixes

greetings

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions