Quelqu'un a t'il réussi a compiler cette nouvelle mouture du célèbre simulateur de vol ? Que ce soit sous Arch ou Manjaro, la compilation échoue.
Il faut commencer par compiler simgear puis flightgear et enfin flightgear-data qui doivent être tous trois de la même version . Hélas, à 95% de la compilation de simgear, une erreur apparaît:
Code : Tout sélectionner
[ 95%] Building CXX object simgear/CMakeFiles/SimGearScene.dir/scene/viewer/ClusteredShading.cxx.o
/tmp/simgear/src/simgear-2020.3.17/simgear/scene/util/SGProgram.cxx: Dans la fonction membre « virtual void SGProgram::apply(osg::State&) const »:
/tmp/simgear/src/simgear-2020.3.17/simgear/scene/util/SGProgram.cxx:58:31: attention: comparaison d'expressions entières de types signés différents: « int » et « unsigned int » [-Wsign-compare]
58 | for (int i = 0; i < getNumShaders(); ++i) {
| ~~^~~~~~~~~~~~~~~~~
/tmp/simgear/src/simgear-2020.3.17/simgear/scene/util/SGProgram.cxx:69:27: attention: comparaison d'expressions entières de types signés différents: « int » et « unsigned int » [-Wsign-compare]
69 | for (int i = 0; i < getNumShaders(); ++i) {
| ~~^~~~~~~~~~~~~~~~~
[ 95%] Building CXX object simgear/CMakeFiles/SimGearScene.dir/scene/viewer/Compositor.cxx.o
Dans le fichier inclus depuis /tmp/simgear/src/simgear-2020.3.17/simgear/scene/viewer/Compositor.cxx:17:
/tmp/simgear/src/simgear-2020.3.17/simgear/scene/viewer/Compositor.hxx:137:34: erreur: le champ « _uniforms » a le type incomplet « simgear::compositor::Compositor::BuiltinUniforms » {aka « std::array<osg::ref_ptr<osg::Uniform>, 14> »}
137 | BuiltinUniforms _uniforms;
| ^~~~~~~~~
Dans le fichier inclus depuis /usr/include/c++/12.2.1/bits/hashtable_policy.h:34,
depuis /usr/include/c++/12.2.1/bits/hashtable.h:35,
depuis /usr/include/c++/12.2.1/unordered_map:46,
depuis /tmp/simgear/src/simgear-2020.3.17/simgear/scene/viewer/Compositor.hxx:20:
/usr/include/c++/12.2.1/tuple:1595:45: note: déclaration de « simgear::compositor::Compositor::BuiltinUniforms » {aka « struct std::array<osg::ref_ptr<osg::Uniform>, 14> »}
1595 | template<typename _Tp, size_t _Nm> struct array;
| ^~~~~
[ 95%] Building CXX object simgear/CMakeFiles/SimGearScene.dir/scene/viewer/CompositorBuffer.cxx.o
Dans le fichier inclus depuis /tmp/simgear/src/simgear-2020.3.17/simgear/scene/viewer/CompositorBuffer.cxx:33:
/tmp/simgear/src/simgear-2020.3.17/simgear/scene/viewer/Compositor.hxx:137:34: erreur: le champ « _uniforms » a le type incomplet « simgear::compositor::Compositor::BuiltinUniforms » {aka « std::array<osg::ref_ptr<osg::Uniform>, 14> »}
137 | BuiltinUniforms _uniforms;
| ^~~~~~~~~
Dans le fichier inclus depuis /usr/include/c++/12.2.1/bits/stl_map.h:63,
depuis /usr/include/c++/12.2.1/map:61,
depuis /usr/include/osg/GLExtensions:24,
depuis /usr/include/osg/BufferObject:19,
depuis /usr/include/osg/Image:17,
depuis /usr/include/osg/Texture:18,
depuis /tmp/simgear/src/simgear-2020.3.17/simgear/scene/viewer/CompositorBuffer.hxx:20,
depuis /tmp/simgear/src/simgear-2020.3.17/simgear/scene/viewer/CompositorBuffer.cxx:17:
/usr/include/c++/12.2.1/tuple:1595:45: note: déclaration de « simgear::compositor::Compositor::BuiltinUniforms » {aka « struct std::array<osg::ref_ptr<osg::Uniform>, 14> »}
1595 | template<typename _Tp, size_t _Nm> struct array;
| ^~~~~
make[2]: *** [simgear/CMakeFiles/SimGearScene.dir/build.make:1826: simgear/CMakeFiles/SimGearScene.dir/scene/viewer/Compositor.cxx.o] Error 1
make[2]: *** Attente des tâches non terminées....
make[2]: *** [simgear/CMakeFiles/SimGearScene.dir/build.make:1840: simgear/CMakeFiles/SimGearScene.dir/scene/viewer/CompositorBuffer.cxx.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:887: simgear/CMakeFiles/SimGearScene.dir/all] Error 2
make: *** [Makefile:156: all] Error 2
==> ERREUR : Une erreur s’est produite dans build().
Abandon…
J'ai posté un rapport de bug sur le dépôt du projet https://github.com/acxz/flightgear-arch/issues et il y a déjà des posts relayant cette erreur, mais à ce jour, pas de réaction.
Si quelqu'un avait une idée..