Board index FlightGear Support Compiling

simgear fails to build with boost 1.69

Building FlightGear from source, and in the need for help?

simgear fails to build with boost 1.69

Postby Lenard Spencer » Sat Dec 15, 2018 7:31 pm

Trying to build the latest release, but simgear bombs out with the latest boost 1.69.

build log (I know it's LONG but probably necessary
:
[ 38%] Building CXX object simgear/CMakeFiles/SimGearCore.dir/nasal/cppbind/NasalContext.cxx.o
In file included from /tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/NasalContext.cxx:20:
/tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/NasalHash.hxx:123:23: error: ?enable_if? in namespace ?boost? does not name a template type
typename boost::enable_if< boost::is_function<Sig>,
^~~~~~~~~
/tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/NasalHash.hxx:123:23: note: suggested alternative: ?enable_if_?
typename boost::enable_if< boost::is_function<Sig>,
^~~~~~~~~
enable_if_
/tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/NasalHash.hxx:123:32: error: expected unqualified-id before ?<? token
typename boost::enable_if< boost::is_function<Sig>,
^
/tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/NasalHash.hxx:240:37: error: ?enable_if_c? in namespace ?boost? does not name a template type
typename boost::enable_if_c< is_const || !is_other_const,
^~~~~~~~~~~
/tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/NasalHash.hxx:240:37: note: suggested alternative: ?enable_if_t?
typename boost::enable_if_c< is_const || !is_other_const,
^~~~~~~~~~~
enable_if_t
/tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/NasalHash.hxx:240:48: error: expected ?,? or ?...? before ?<? token
typename boost::enable_if_c< is_const || !is_other_const,
^
/tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/NasalHash.hxx: In function ?simgear::Map<std::__cxx11::basic_string<char>, Value> from_nasal_helper(naContext, naRef, const simgear::Map<std::__cxx11::basic_string<char>, Value>*)?:
/tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/NasalHash.hxx:290:57: error: no match for ?operator!=? (operand types are ?nasal::Hash::const_iterator? {aka ?nasal::Hash::Iterator<true>?} and ?nasal::Hash::iterator? {aka ?nasal::Hash::Iterator<false>?})
for(nasal::Hash::const_iterator it = hash.begin(); it != hash.end(); ++it)
~~~^~~~~~~~~~~~~
In file included from /tmp/SBo/simgear-2018.3.1/simgear/math/SGMath.hxx:31,
from /tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/detail/from_nasal_helper.hxx:25,
from /tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/from_nasal.hxx:23,
from /tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/NasalContext.hxx:125,
from /tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/NasalContext.cxx:19:
/tmp/SBo/simgear-2018.3.1/simgear/math/SGVec2.hxx:282:1: note: candidate: ?template<class T> bool operator!=(const SGVec2<T>&, const SGVec2<T>&)?
operator!=(const SGVec2<T>& v1, const SGVec2<T>& v2)
^~~~~~~~
/tmp/SBo/simgear-2018.3.1/simgear/math/SGVec2.hxx:282:1: note: template argument deduction/substitution failed:
In file included from /tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/NasalContext.cxx:20:
/tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/NasalHash.hxx:290:69: note: ?nasal::Hash::const_iterator? {aka ?nasal::Hash::Iterator<true>?} is not derived from ?const SGVec2<T>?
for(nasal::Hash::const_iterator it = hash.begin(); it != hash.end(); ++it)
^
In file included from /tmp/SBo/simgear-2018.3.1/simgear/math/SGMath.hxx:32,
from /tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/detail/from_nasal_helper.hxx:25,
from /tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/from_nasal.hxx:23,
from /tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/NasalContext.hxx:125,
from /tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/NasalContext.cxx:19:
/tmp/SBo/simgear-2018.3.1/simgear/math/SGVec3.hxx:385:1: note: candidate: ?template<class T> bool operator!=(const SGVec3<S>&, const SGVec3<S>&)?
operator!=(const SGVec3<T>& v1, const SGVec3<T>& v2)
^~~~~~~~
/tmp/SBo/simgear-2018.3.1/simgear/math/SGVec3.hxx:385:1: note: template argument deduction/substitution failed:
In file included from /tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/NasalContext.cxx:20:
/tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/NasalHash.hxx:290:69: note: ?nasal::Hash::const_iterator? {aka ?nasal::Hash::Iterator<true>?} is not derived from ?const SGVec3<S>?
for(nasal::Hash::const_iterator it = hash.begin(); it != hash.end(); ++it)
^
In file included from /tmp/SBo/simgear-2018.3.1/simgear/math/SGMath.hxx:33,
from /tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/detail/from_nasal_helper.hxx:25,
from /tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/from_nasal.hxx:23,
from /tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/NasalContext.hxx:125,
from /tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/NasalContext.cxx:19:
/tmp/SBo/simgear-2018.3.1/simgear/math/SGVec4.hxx:300:1: note: candidate: ?template<class T> bool operator!=(const SGVec4<T>&, const SGVec4<T>&)?
operator!=(const SGVec4<T>& v1, const SGVec4<T>& v2)
^~~~~~~~
/tmp/SBo/simgear-2018.3.1/simgear/math/SGVec4.hxx:300:1: note: template argument deduction/substitution failed:
In file included from /tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/NasalContext.cxx:20:
/tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/NasalHash.hxx:290:69: note: ?nasal::Hash::const_iterator? {aka ?nasal::Hash::Iterator<true>?} is not derived from ?const SGVec4<T>?
for(nasal::Hash::const_iterator it = hash.begin(); it != hash.end(); ++it)
^
In file included from /tmp/SBo/simgear-2018.3.1/simgear/math/SGMath.hxx:36,
from /tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/detail/from_nasal_helper.hxx:25,
from /tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/from_nasal.hxx:23,
from /tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/NasalContext.hxx:125,
from /tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/NasalContext.cxx:19:
/tmp/SBo/simgear-2018.3.1/simgear/math/SGQuat.hxx:692:1: note: candidate: ?template<class T> bool operator!=(const SGQuat<T>&, const SGQuat<T>&)?
operator!=(const SGQuat<T>& v1, const SGQuat<T>& v2)
^~~~~~~~
/tmp/SBo/simgear-2018.3.1/simgear/math/SGQuat.hxx:692:1: note: template argument deduction/substitution failed:
In file included from /tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/NasalContext.cxx:20:
/tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/NasalHash.hxx:290:69: note: ?nasal::Hash::const_iterator? {aka ?nasal::Hash::Iterator<true>?} is not derived from ?const SGQuat<T>?
for(nasal::Hash::const_iterator it = hash.begin(); it != hash.end(); ++it)
^
In file included from /tmp/SBo/simgear-2018.3.1/simgear/math/SGMath.hxx:38,
from /tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/detail/from_nasal_helper.hxx:25,
from /tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/from_nasal.hxx:23,
from /tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/NasalContext.hxx:125,
from /tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/NasalContext.cxx:19:
/tmp/SBo/simgear-2018.3.1/simgear/math/SGMatrix.hxx:452:1: note: candidate: ?template<class T> bool operator!=(const SGMatrix<T>&, const SGMatrix<T>&)?
operator!=(const SGMatrix<T>& m1, const SGMatrix<T>& m2)
^~~~~~~~
/tmp/SBo/simgear-2018.3.1/simgear/math/SGMatrix.hxx:452:1: note: template argument deduction/substitution failed:
In file included from /tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/NasalContext.cxx:20:
/tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/NasalHash.hxx:290:69: note: ?nasal::Hash::const_iterator? {aka ?nasal::Hash::Iterator<true>?} is not derived from ?const SGMatrix<T>?
for(nasal::Hash::const_iterator it = hash.begin(); it != hash.end(); ++it)
^
In file included from /tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/NasalObjectHolder.hxx:24,
from /tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/NasalMethodHolder.hxx:23,
from /tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/detail/from_nasal_helper.hxx:29,
from /tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/from_nasal.hxx:23,
from /tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/NasalContext.hxx:125,
from /tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/NasalContext.cxx:19:
/tmp/SBo/simgear-2018.3.1/simgear/structure/SGSharedPtr.hxx:180:6: note: candidate: ?template<class T, class U> bool operator!=(const SGSharedPtr<T>&, const SGSharedPtr<U>&)?
bool operator!=(const SGSharedPtr<T>& lhs, const SGSharedPtr<U>& rhs)
^~~~~~~~
/tmp/SBo/simgear-2018.3.1/simgear/structure/SGSharedPtr.hxx:180:6: note: template argument deduction/substitution failed:
In file included from /tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/NasalContext.cxx:20:
/tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/NasalHash.hxx:290:69: note: ?nasal::Hash::const_iterator? {aka ?nasal::Hash::Iterator<true>?} is not derived from ?const SGSharedPtr<T>?
for(nasal::Hash::const_iterator it = hash.begin(); it != hash.end(); ++it)
^
In file included from /tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/NasalHash.hxx:26,
from /tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/NasalContext.cxx:20:
/usr/include/boost/iterator/iterator_facade.hpp:901:3: note: candidate: ?template<class Derived1, class V1, class TC1, class Reference1, class Difference1, class Derived2, class V2, class TC2, class Reference2, class Difference2> typename boost::iterators::detail::enable_if_interoperable<Derived1, Derived2, typename boost::mpl::apply2<boost::iterators::detail::always_bool2, Derived1, Derived2>::type>::type boost::iterators::operator!=(const boost::iterators::iterator_facade<Derived1, V1, TC1, Reference1, Difference1>&, const boost::iterators::iterator_facade<Derived2, V2, TC2, Reference2, Difference2>&)?
BOOST_ITERATOR_FACADE_RELATION(!=, return !, equal)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/boost/iterator/iterator_facade.hpp:901:3: note: template argument deduction/substitution failed:
/usr/include/boost/iterator/iterator_facade.hpp: In substitution of ?template<class Derived1, class V1, class TC1, class Reference1, class Difference1, class Derived2, class V2, class TC2, class Reference2, class Difference2> typename boost::iterators::detail::enable_if_interoperable<Derived1, Derived2, typename boost::mpl::apply2<boost::iterators::detail::always_bool2, Derived1, Derived2>::type>::type boost::iterators::operator!=(const boost::iterators::iterator_facade<Derived1, V1, TC1, Reference1, Difference1>&, const boost::iterators::iterator_facade<Derived2, V2, TC2, Reference2, Difference2>&) [with Derived1 = nasal::Hash::Iterator<true>; V1 = nasal::Hash::Entry<true>; TC1 = boost::iterators::bidirectional_traversal_tag; Reference1 = nasal::Hash::Entry<true>; Difference1 = long int; Derived2 = nasal::Hash::Iterator<false>; V2 = nasal::Hash::Entry<false>; TC2 = boost::iterators::bidirectional_traversal_tag; Reference2 = nasal::Hash::Entry<false>; Difference2 = long int]?:
/tmp/SBo/simgear-2018.3.1/simgear/nasal/cppbind/NasalHash.hxx:290:69: required from here
/usr/include/boost/iterator/iterator_facade.hpp:901:3: error: no type named ?type? in ?struct boost::iterators::detail::enable_if_interoperable<nasal::Hash::Iterator<true>, nasal::Hash::Iterator<false>, bool>?
make[2]: *** [simgear/CMakeFiles/SimGearCore.dir/build.make:1480: simgear/CMakeFiles/SimGearCore.dir/nasal/cppbind/NasalContext.cxx.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:269: simgear/CMakeFiles/SimGearCore.dir/all] Error 2
make: *** [Makefile:152: all] Error 2

Any ideas?
Lenard Spencer
 
Posts: 7
Joined: Mon Dec 23, 2013 1:36 am

Re: simgear fails to build with boost 1.69

Postby wkitty42 » Sun Dec 16, 2018 7:14 pm

sure, back level your boost until it works properly ;)

FWIW: there's a slow movement to remove boost in favor of more modern techniques...
"You get more air close to the ground," said Angalo. "I read that in a book. You get lots of air low down, and not much when you go up."
"Why not?" said Gurder.
"Dunno. It's frightened of heights, I guess."
User avatar
wkitty42
 
Posts: 9146
Joined: Fri Feb 20, 2015 4:46 pm
Location: central NC, USA
Callsign: wk42
Version: git next
OS: Kubuntu 20.04

Re: simgear fails to build with boost 1.69

Postby jbg_ » Tue Jan 29, 2019 8:03 am

It's just a missing header import. For the benefit of anyone who, like me, Googles the error message and ends up here, rather than downgrading Boost it's sufficient to just add the missing import:

Code: Select all
diff --git a/simgear/nasal/cppbind/NasalHash.hxx b/simgear/nasal/cppbind/NasalHash.hxx
index aac672fd..2ee7d044 100644
--- a/simgear/nasal/cppbind/NasalHash.hxx
+++ b/simgear/nasal/cppbind/NasalHash.hxx
@@ -23,6 +23,7 @@
 #include "to_nasal.hxx"
 
 #include <simgear/structure/map.hxx>
+#include <boost/core/enable_if.hpp>
 #include <boost/iterator/iterator_facade.hpp>
 
 namespace nasal
jbg_
 
Posts: 1
Joined: Tue Jan 29, 2019 8:01 am

Re: simgear fails to build with boost 1.69

Postby wrg » Tue Feb 19, 2019 11:09 am

I try to set FG by download and compile script.
but Simgear is not make. Any ideas?
https://pastebin.com/DgAjXFTG
scenery of Russia updated 20 Jul 2015 https://github.com/soitanen/Project-Russia
wrg
 
Posts: 87
Joined: Mon Dec 06, 2010 12:46 pm
Location: ULLI Saint-Petersburg
Callsign: R-wrg
Version: 2020.4.0
OS: Debian GNU/Linux

Re: simgear fails to build with boost 1.69

Postby FlugHund » Tue Feb 19, 2019 1:00 pm

Try either compiling 'next' or build OSG (at least version 3.4.1), too.
User avatar
FlugHund
 
Posts: 568
Joined: Thu Mar 01, 2007 4:27 pm
Location: Inside ground effect
Callsign: D-HUND
IRC name: D-HUND / debdog
Version: next
OS: Devuan

Re: simgear fails to build with boost 1.69

Postby FlugHund » Thu Feb 21, 2019 9:36 am

There has been a commit yesterday which should make OSG 3.4.0 compatible again.
User avatar
FlugHund
 
Posts: 568
Joined: Thu Mar 01, 2007 4:27 pm
Location: Inside ground effect
Callsign: D-HUND
IRC name: D-HUND / debdog
Version: next
OS: Devuan

Re: simgear fails to build with boost 1.69

Postby yanes » Sun Mar 03, 2019 1:47 am

I still use OSG 3.2 in my builds , just to avoid the bug with the osgtext , do you confirm that was fixed ??
I really want to move ahead with the 3.4 but I don't want to bother with buggy components
User avatar
yanes
 
Posts: 135
Joined: Tue Sep 02, 2014 2:14 pm
Location: Tunisia
Callsign: YANES
Version: 2018.2.2
OS: Linux

Re: simgear fails to build with boost 1.69

Postby Richard » Sun Mar 03, 2019 9:49 am

The recommended minimum version is 3.4.1 from James's branch https://github.com/zakalawe/osg/tree/fgfs-342-1 (which includes the OSGText fixes) - Win32 users can grab the build artefact from the build server and use that http://build.flightgear.org:8080/job/OS ... eGraph.zip
Richard
 
Posts: 810
Joined: Sun Nov 02, 2014 11:17 pm
Version: Git
OS: Win10


Return to Compiling

Who is online

Users browsing this forum: No registered users and 7 guests