Closed AssociationSirius closed 5 years ago
I'm creating a Dockerfile with Ubuntu 18.10. However, during building the tests, I get following error:
In file included from /usr/include/yaml-cpp/yaml.h:17,
from /qrw/test/game/skirmish/mapvalidator_validate.cpp:4:
/usr/include/yaml-cpp/node/impl.h: In instantiation of 'const T YAML::as_if<T, void>::operator()() const [with T = YAML::Node]':
/usr/include/yaml-cpp/node/impl.h:139:31: required from 'const T YAML::Node::as() const [with T = YAML::Node]'
/usr/include/yaml-cpp/node/convert.h:200:7: required from 'static bool YAML::convert<std::vector<T> >::decode(const YAML::Node&, std::vector<T>&) [with T = YAML::Node]'
/usr/include/yaml-cpp/node/impl.h:116:27: required from 'const T YAML::as_if<T, void>::operator()() const [with T = std::vector<YAML::Node>]'
/usr/include/yaml-cpp/node/impl.h:139:31: required from 'const T YAML::Node::as() const [with T = std::vector<YAML::Node>]'
/qrw/test/game/skirmish/mapvalidator_validate.cpp:115:65: required from here
/usr/include/yaml-cpp/node/impl.h:116:27: error: incomplete type 'YAML::convert<YAML::Node>' used in nested name specifier
if (convert<T>::decode(node, t))
~~~~~~~~~~~~~~~~~~^~~~~~~~~
make[2]: *** [test/CMakeFiles/unittest.dir/build.make:531: test/CMakeFiles/unittest.dir/game/skirmish/mapvalidator_validate.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:244: test/CMakeFiles/unittest.dir/all] Error 2
make: *** [Makefile:84: all] Error 2
Did you also see this error?
I see that Ubuntu contains version 0.5 of yaml-cpp whereas my Arch Linux has 0.6 currently installed. Maybe that's the reason but I did not have time to investigate further.
I'm sorry: I did not compile the test directory; I did not want to install new dependencies.
As part of getting the CI pipeline back up, I've created a docker file for Ubuntu 18.10. It also includes manually built yaml-cpp in version 0.6 which fixes the error I posted above.
See commit 8e2c2b4974cdbff0e6f0ac1b925b91a0853f17f2
Thanks for your hints @AssociationSirius :+1:
If we install the good dependencies, without doing anything else, everything works, compilation and links.
Ubuntu 18.10 take: