Skip to content
This repository has been archived by the owner on Jan 25, 2023. It is now read-only.

Trouble compiling cpp to exe #14

Open
MSLewis522 opened this issue Nov 22, 2020 · 5 comments
Open

Trouble compiling cpp to exe #14

MSLewis522 opened this issue Nov 22, 2020 · 5 comments

Comments

@MSLewis522
Copy link

I am using visual code studio to try to run the real-time-hand-tracker.cpp
I have downloaded all of the folders from git and then I tried to build the .exe file with g++ compiler from mingw64. however this failed with a very very long list of errors and attempts to fix - after reading through the messages from the failed build, I think it is having trouble locating the right find_json() function frequently throughout the program.

I will paste the entire message below. Any help would be very much appreciated ! Thanks so much !

In file included from .\realtime-hand-tracker.cpp:26:
.../third_party/json.h: In instantiation of 'void field_decoder::operator()(const char*, T&, TS ...) [with T = linalg::vec<int, 2>; TS = {}]':
.../include/misc_image.h:57:60: required from 'void visit_fields(DCamera&, F) [with F = field_decoder]'
.../third_party/json.h:146:130: required from 'typename std::enable_if<std::is_class<_Tp>::value>::type from_json(T&, const json::value&) [with T = DCamera; typename std::enable_if<std::is_class<_Tp>::value>::type = void]'
.../include/dcam.h:354:93: required from here
.../third_party/json.h:145:144: error: no matching function for call to 'from_json(linalg::vec<int, 2>&, const json::value&)'
struct field_decoder { const json::value & v; template<class T, class... TS> void operator () (const char * name, T & field, TS...) { from_json(field, v[name]); } };
~~~~~~~~~^~~~~~~~~~~~~~~~
.../third_party/json.h:138:13: note: candidate: 'void from_json(bool&, const json::value&)'
inline void from_json(bool & b, const json::value & val) { b = val.is_true(); }
^~~~~~~~~
.../third_party/json.h:138:13: note: no known conversion for argument 1 from 'linalg::vec<int, 2>' to 'bool&'
.../third_party/json.h:139:13: note: candidate: 'void from_json(std::__cxx11::string&, const json::value&)'
inline void from_json(std::string & s, const json::value & val) { s = val.string(); }
^~~~~~~~~
.../third_party/json.h:139:13: note: no known conversion for argument 1 from 'linalg::vec<int, 2>' to 'std::__cxx11::string&' {aka 'std::__cxx11::basic_string&'}
.../third_party/json.h:140:79: note: candidate: 'template typename std::enable_if<std::is_arithmetic<_Tp>::value, void>::type from_json(T&, const json::value&)'
template typename std::enable_if<std::is_arithmetic::value>::type from_json(T & n,
const json::value & val) { n = val.number(); }
^~~~~~~~~
.../third_party/json.h:140:79: note: template argument deduction/substitution failed:
.../third_party/json.h: In substitution of 'template typename std::enable_if<std::is_arithmetic<_Tp>::value, void>::type from_json(T&, const json::value&) [with T = linalg::vec<int,
2>]':
.../third_party/json.h:145:144: required from 'void field_decoder::operator()(const char*, T&, TS ...) [with T = linalg::vec<int, 2>; TS = {}]'
.../include/misc_image.h:57:60: required from 'void visit_fields(DCamera&, F) [with F = field_decoder]'
.../third_party/json.h:146:130: required from 'typename std::enable_if<std::is_class<_Tp>::value>::type from_json(T&, const json::value&) [with T = DCamera; typename std::enable_if<std::is_class<_Tp>::value>::type = void]'
.../include/dcam.h:354:93: required from here
.../third_party/json.h:140:79: error: no type named 'type' in 'struct std::enable_if<false, void>'
.../third_party/json.h: In instantiation of 'void field_decoder::operator()(const char*, T&, TS ...) [with T = linalg::vec<int, 2>; TS = {}]':
.../include/misc_image.h:57:60: required from 'void visit_fields(DCamera&, F) [with F = field_decoder]'
.../third_party/json.h:146:130: required from 'typename std::enable_if<std::is_class<_Tp>::value>::type from_json(T&, const json::value&) [with T = DCamera; typename std::enable_if<std::is_class<_Tp>::value>::type = void]'
.../include/dcam.h:354:93: required from here
.../third_party/json.h:141:31: note: candidate: 'template<class T, int N> void from_json(T (&)[N], const json::value&)'
template<class T, int N> void from_json(T (& a)[N], const json::value & val) { for(int i=0; i<N; ++i) from_json(a[i], val[i]); }
^~~~~~~~~
.../third_party/json.h:141:31: note: template argument deduction/substitution failed:
.../third_party/json.h:145:144: note: mismatched types 'T [N]' and 'linalg::vec<int, 2>'
struct field_decoder { const json::value & v; template<class T, class... TS> void operator () (const char * name, T & field, TS...) { from_json(field, v[name]); } };

                                   ~~~~~~~~~^~~~~~~~~~~~~~~~

.../third_party/json.h:142:34: note: candidate: 'template<class T, long long unsigned int N> void from_json(std::array<_Tp, _Nm>&, const json::value&)'
template<class T, size_t N> void from_json(std::array<T,N> & a, const json::value & val) { for(size_t i=0; i<N; ++i) from_json(a[i], val[i]); }
^~~~~~~~~
.../third_party/json.h:142:34: note: template argument deduction/substitution failed:
.../third_party/json.h:145:144: note: 'linalg::vec<int, 2>' is not derived from 'std::array<_Tp, _Nm>'
struct field_decoder { const json::value & v; template<class T, class... TS> void operator () (const char * name, T & field, TS...) { from_json(field, v[name]); } };

                                   ~~~~~~~~~^~~~~~~~~~~~~~~~

.../third_party/json.h:143:24: note: candidate: 'template void from_json(std::vector&, const json::value&)'
template void from_json(std::vector & v, const json::value & val) { v.resize(val.get_array().size()); for(size_t i=0; i<v.size(); ++i) from_json(v[i], val[i]); }
^~~~~~~~~
.../third_party/json.h:143:24: note: template argument deduction/substitution failed:
.../third_party/json.h:145:144: note: 'linalg::vec<int, 2>' is not derived from 'std::vector'
struct field_decoder { const json::value & v; template<class T, class... TS> void operator () (const char * name, T & field, TS...) { from_json(field, v[name]); } };

                                   ~~~~~~~~~^~~~~~~~~~~~~~~~

.../third_party/json.h:144:24: note: candidate: 'template void from_json(std::map<std::__cxx11::basic_string, T>&, const json::value&)'
template void from_json(std::map<std::string, T> & m, const json::value & val) { for (auto &e : val.get_object()) { from_json(m[e.first], e.second); } }
^~~~~~~~~
.../third_party/json.h:144:24: note: template argument deduction/substitution failed:
.../third_party/json.h:145:144: note: 'linalg::vec<int, 2>' is not derived from 'std::map<std::__cxx11::basic_string, T>'
struct field_decoder { const json::value & v; template<class T, class... TS> void operator () (const char * name, T & field, TS...) { from_json(field, v[name]); } };

                                   ~~~~~~~~~^~~~~~~~~~~~~~~~

.../third_party/json.h: In instantiation of 'void field_decoder::operator()(const char*, T&, TS ...) [with T = linalg::vec<float, 2>; TS = {}]':
.../include/misc_image.h:57:81: required from 'void visit_fields(DCamera&, F) [with F = field_decoder]'
.../third_party/json.h:146:130: required from 'typename std::enable_if<std::is_class<_Tp>::value>::type from_json(T&, const json::value&) [with T = DCamera; typename std::enable_if<std::is_class<_Tp>::value>::type = void]'
.../include/dcam.h:354:93: required from here
.../third_party/json.h:145:144: error: no matching function for call to 'from_json(linalg::vec<float, 2>&, const json::value&)'
.../third_party/json.h:138:13: note: candidate: 'void from_json(bool&, const json::value&)'
inline void from_json(bool & b, const json::value & val) { b = val.is_true(); }
^~~~~~~~~
.../third_party/json.h:138:13: note: no known conversion for argument 1 from 'linalg::vec<float, 2>' to 'bool&'
.../third_party/json.h:139:13: note: candidate: 'void from_json(std::__cxx11::string&, const json::value&)'
inline void from_json(std::string & s, const json::value & val) { s = val.string(); }
^~~~~~~~~
.../third_party/json.h:139:13: note: no known conversion for argument 1 from 'linalg::vec<float, 2>' to 'std::__cxx11::string&' {aka 'std::__cxx11::basic_string&'}
.../third_party/json.h:140:79: note: candidate: 'template typename std::enable_if<std::is_arithmetic<_Tp>::value, void>::type from_json(T&, const json::value&)'
template typename std::enable_if<std::is_arithmetic::value>::type from_json(T & n,
const json::value & val) { n = val.number(); }
^~~~~~~~~
.../third_party/json.h:140:79: note: template argument deduction/substitution failed:
.../third_party/json.h: In substitution of 'template typename std::enable_if<std::is_arithmetic<_Tp>::value, void>::type from_json(T&, const json::value&) [with T = linalg::vec<float, 2>]':
.../third_party/json.h:145:144: required from 'void field_decoder::operator()(const char*, T&, TS ...) [with T = linalg::vec<float, 2>; TS = {}]'
.../include/misc_image.h:57:81: required from 'void visit_fields(DCamera&, F) [with F = field_decoder]'
.../third_party/json.h:146:130: required from 'typename std::enable_if<std::is_class<_Tp>::value>::type from_json(T&, const json::value&) [with T = DCamera; typename std::enable_if<std::is_class<_Tp>::value>::type = void]'
.../include/dcam.h:354:93: required from here
.../third_party/json.h:140:79: error: no type named 'type' in 'struct std::enable_if<false, void>'
.../third_party/json.h: In instantiation of 'void field_decoder::operator()(const char*, T&, TS ...) [with T = linalg::vec<float, 2>; TS = {}]':
.../include/misc_image.h:57:81: required from 'void visit_fields(DCamera&, F) [with F = field_decoder]'
.../third_party/json.h:146:130: required from 'typename std::enable_if<std::is_class<_Tp>::value>::type from_json(T&, const json::value&) [with T = DCamera; typename std::enable_if<std::is_class<_Tp>::value>::type = void]'
.../include/dcam.h:354:93: required from here
.../third_party/json.h:141:31: note: candidate: 'template<class T, int N> void from_json(T (&)[N], const json::value&)'
template<class T, int N> void from_json(T (& a)[N], const json::value & val) { for(int i=0; i<N; ++i) from_json(a[i], val[i]); }
^~~~~~~~~
.../third_party/json.h:141:31: note: template argument deduction/substitution failed:
.../third_party/json.h:145:144: note: mismatched types 'T [N]' and 'linalg::vec<float, 2>'
struct field_decoder { const json::value & v; template<class T, class... TS> void operator () (const char * name, T & field, TS...) { from_json(field, v[name]); } };

                                   ~~~~~~~~~^~~~~~~~~~~~~~~~

.../third_party/json.h:142:34: note: candidate: 'template<class T, long long unsigned int N> void from_json(std::array<_Tp, _Nm>&, const json::value&)'
template<class T, size_t N> void from_json(std::array<T,N> & a, const json::value & val) { for(size_t i=0; i<N; ++i) from_json(a[i], val[i]); }
^~~~~~~~~
.../third_party/json.h:142:34: note: template argument deduction/substitution failed:
.../third_party/json.h:145:144: note: 'linalg::vec<float, 2>' is not derived from 'std::array<_Tp, _Nm>'
struct field_decoder { const json::value & v; template<class T, class... TS> void operator () (const char * name, T & field, TS...) { from_json(field, v[name]); } };

                                   ~~~~~~~~~^~~~~~~~~~~~~~~~

.../third_party/json.h:143:24: note: candidate: 'template void from_json(std::vector&, const json::value&)'
template void from_json(std::vector & v, const json::value & val) { v.resize(val.get_array().size()); for(size_t i=0; i<v.size(); ++i) from_json(v[i], val[i]); }
^~~~~~~~~
.../third_party/json.h:143:24: note: template argument deduction/substitution failed:
.../third_party/json.h:145:144: note: 'linalg::vec<float, 2>' is not derived from 'std::vector'
struct field_decoder { const json::value & v; template<class T, class... TS> void operator () (const char * name, T & field, TS...) { from_json(field, v[name]); } };

                                   ~~~~~~~~~^~~~~~~~~~~~~~~~

.../third_party/json.h:144:24: note: candidate: 'template void from_json(std::map<std::__cxx11::basic_string, T>&, const json::value&)'
template void from_json(std::map<std::string, T> & m, const json::value & val) { for (auto &e : val.get_object()) { from_json(m[e.first], e.second); } }
^~~~~~~~~
.../third_party/json.h:144:24: note: template argument deduction/substitution failed:
.../third_party/json.h:145:144: note: 'linalg::vec<float, 2>' is not derived from 'std::map<std::__cxx11::basic_string, T>'
struct field_decoder { const json::value & v; template<class T, class... TS> void operator () (const char * name, T & field, TS...) { from_json(field, v[name]); } };

                                   ~~~~~~~~~^~~~~~~~~~~~~~~~

.../third_party/json.h: In instantiation of 'void from_json(std::vector&, const json::value&) [with T = linalg::vec<float, 3>]':
.../third_party/json.h:145:144: required from 'void field_decoder::operator()(const char*, T&, TS ...) [with T = std::vector<linalg::vec<float, 3> >; TS = {}]'
.../include/../third_party/wingmesh.h:975:3: required from 'void visit_fields(WingMesh&, F) [with F = field_decoder]'
.../third_party/json.h:146:130: required from 'typename std::enable_if<std::is_class<_Tp>::value>::type from_json(T&, const json::value&) [with T = WingMesh; typename std::enable_if<std::is_class<_Tp>::value>::type = void]'
.../third_party/json.h:143:157: required from 'void from_json(std::vector&, const json::value&) [with T = WingMesh]'
.../include/physmodel.h:447:48: required from here
.../third_party/json.h:143:157: error: no matching function for call to 'from_json(__gnu_cxx::__alloc_traits<std::allocator<linalg::vec<float, 3> >, linalg::vec<float, 3> >::value_type&, const json::value&)'
template void from_json(std::vector & v, const json::value & val) { v.resize(val.get_array().size()); for(size_t i=0; i<v.size(); ++i) from_json(v[i], val[i]); }

                                                ~~~~~~~~~^~~~~~~~~~~~~~

.../third_party/json.h:138:13: note: candidate: 'void from_json(bool&, const json::value&)'
inline void from_json(bool & b, const json::value & val) { b = val.is_true(); }
^~~~~~~~~
.../third_party/json.h:138:13: note: no known conversion for argument 1 from '__gnu_cxx::__alloc_traits<std::allocator<linalg::vec<float, 3> >, linalg::vec<float, 3> >::value_type' {aka 'linalg::vec<float, 3>'} to 'bool&'
.../third_party/json.h:139:13: note: candidate: 'void from_json(std::__cxx11::string&, const json::value&)'
inline void from_json(std::string & s, const json::value & val) { s = val.string(); }
^~~~~~~~~
.../third_party/json.h:139:13: note: no known conversion for argument 1 from '__gnu_cxx::__alloc_traits<std::allocator<linalg::vec<float, 3> >, linalg::vec<float, 3> >::value_type' {aka 'linalg::vec<float, 3>'} to 'std::__cxx11::string&' {aka 'std::__cxx11::basic_string&'}
.../third_party/json.h:140:79: note: candidate: 'template typename std::enable_if<std::is_arithmetic<_Tp>::value, void>::type from_json(T&, const json::value&)'
template typename std::enable_if<std::is_arithmetic::value>::type from_json(T & n,
const json::value & val) { n = val.number(); }
^~~~~~~~~
.../third_party/json.h:140:79: note: template argument deduction/substitution failed:
.../third_party/json.h: In substitution of 'template typename std::enable_if<std::is_arithmetic<_Tp>::value, void>::type from_json(T&, const json::value&) [with T = linalg::vec<float, 3>]':
.../third_party/json.h:143:157: required from 'void from_json(std::vector&, const json::value&) [with T = linalg::vec<float, 3>]'
.../third_party/json.h:145:144: required from 'void field_decoder::operator()(const char*, T&, TS ...) [with T = std::vector<linalg::vec<float, 3> >; TS = {}]'
.../include/../third_party/wingmesh.h:975:3: required from 'void visit_fields(WingMesh&, F) [with F = field_decoder]'
.../third_party/json.h:146:130: required from 'typename std::enable_if<std::is_class<_Tp>::value>::type from_json(T&, const json::value&) [with T = WingMesh; typename std::enable_if<std::is_class<_Tp>::value>::type = void]'
.../third_party/json.h:143:157: required from 'void from_json(std::vector&, const json::value&) [with T = WingMesh]'
.../include/physmodel.h:447:48: required from here
.../third_party/json.h:140:79: error: no type named 'type' in 'struct std::enable_if<false, void>'
.../third_party/json.h: In instantiation of 'void from_json(std::vector&, const json::value&) [with T = linalg::vec<float, 3>]':
.../third_party/json.h:145:144: required from 'void field_decoder::operator()(const char*, T&, TS ...) [with T = std::vector<linalg::vec<float, 3> >; TS = {}]'
.../include/../third_party/wingmesh.h:975:3: required from 'void visit_fields(WingMesh&, F) [with F = field_decoder]'
.../third_party/json.h:146:130: required from 'typename std::enable_if<std::is_class<_Tp>::value>::type from_json(T&, const json::value&) [with T = WingMesh; typename std::enable_if<std::is_class<_Tp>::value>::type = void]'
.../third_party/json.h:143:157: required from 'void from_json(std::vector&, const json::value&) [with T = WingMesh]'
.../include/physmodel.h:447:48: required from here
.../third_party/json.h:141:31: note: candidate: 'template<class T, int N> void from_json(T (&)[N], const json::value&)'
template<class T, int N> void from_json(T (& a)[N], const json::value & val) { for(int i=0; i<N; ++i) from_json(a[i], val[i]); }
^~~~~~~~~
.../third_party/json.h:141:31: note: template argument deduction/substitution failed:
.../third_party/json.h:143:157: note: mismatched types 'T [N]' and '__gnu_cxx::__alloc_traits<std::allocator<linalg::vec<float, 3> >, linalg::vec<float, 3> >::value_type' {aka 'linalg::vec<float, 3>'}
template void from_json(std::vector & v, const json::value & val) { v.resize(val.get_array().size()); for(size_t i=0; i<v.size(); ++i) from_json(v[i], val[i]); }

                                                ~~~~~~~~~^~~~~~~~~~~~~~

.../third_party/json.h:142:34: note: candidate: 'template<class T, long long unsigned int N> void from_json(std::array<_Tp, _Nm>&, const json::value&)'
template<class T, size_t N> void from_json(std::array<T,N> & a, const json::value & val) { for(size_t i=0; i<N; ++i) from_json(a[i], val[i]); }
^~~~~~~~~
.../third_party/json.h:142:34: note: template argument deduction/substitution failed:
.../third_party/json.h:143:157: note: '__gnu_cxx::__alloc_traits<std::allocator<linalg::vec<float, 3> >, linalg::vec<float, 3> >::value_type' {aka 'linalg::vec<float, 3>'} is not derived from 'std::array<_Tp, _Nm>'
template void from_json(std::vector & v, const json::value & val) { v.resize(val.get_array().size()); for(size_t i=0; i<v.size(); ++i) from_json(v[i], val[i]); }

                                                ~~~~~~~~~^~~~~~~~~~~~~~

.../third_party/json.h:143:24: note: candidate: 'template void from_json(std::vector&, const json::value&)'
template void from_json(std::vector & v, const json::value & val) { v.resize(val.get_array().size()); for(size_t i=0; i<v.size(); ++i) from_json(v[i], val[i]); }
^~~~~~~~~
.../third_party/json.h:143:24: note: template argument deduction/substitution failed:
.../third_party/json.h:143:157: note: '__gnu_cxx::__alloc_traits<std::allocator<linalg::vec<float, 3> >, linalg::vec<float, 3> >::value_type' {aka 'linalg::vec<float, 3>'} is not derived from 'std::vector'
template void from_json(std::vector & v, const json::value & val) { v.resize(val.get_array().size()); for(size_t i=0; i<v.size(); ++i) from_json(v[i], val[i]); }

                                                ~~~~~~~~~^~~~~~~~~~~~~~

.../third_party/json.h: In instantiation of 'void field_decoder::operator()(const char*, T&, TS ...) [with T = linalg::vec<float, 3>; TS = {}]':
.../include/physmodel.h:244:76: required from 'void PhysModel::Joint::visit_fields(F) [with F = field_decoder]'
.../third_party/misc.h:110:58: required from 'void visit_fields(T&, F) [with F = field_decoder; T = PhysModel::Joint]'
.../third_party/json.h:146:130: required from 'typename std::enable_if<std::is_class<_Tp>::value>::type from_json(T&, const json::value&) [with T = PhysModel::Joint; typename std::enable_if<std::is_class<_Tp>::value>::type = void]'
.../third_party/json.h:143:157: required from 'void from_json(std::vector&, const json::value&) [with T = PhysModel::Joint]'
.../include/physmodel.h:449:36: required from here
.../third_party/json.h:145:144: error: no matching function for call to 'from_json(linalg::vec<float, 3>&, const json::value&)'
struct field_decoder { const json::value & v; template<class T, class... TS> void operator () (const char * name, T & field, TS...) { from_json(field, v[name]); } };

                                   ~~~~~~~~~^~~~~~~~~~~~~~~~

.../third_party/json.h:138:13: note: candidate: 'void from_json(bool&, const json::value&)'
inline void from_json(bool & b, const json::value & val) { b = val.is_true(); }
^~~~~~~~~
.../third_party/json.h:138:13: note: no known conversion for argument 1 from 'linalg::vec<float, 3>' to 'bool&'
.../third_party/json.h:139:13: note: candidate: 'void from_json(std::__cxx11::string&, const json::value&)'
inline void from_json(std::string & s, const json::value & val) { s = val.string(); }
^~~~~~~~~
.../third_party/json.h:139:13: note: no known conversion for argument 1 from 'linalg::vec<float, 3>' to 'std::__cxx11::string&' {aka 'std::__cxx11::basic_string&'}
.../third_party/json.h:140:79: note: candidate: 'template typename std::enable_if<std::is_arithmetic<_Tp>::value, void>::type from_json(T&, const json::value&)'
template typename std::enable_if<std::is_arithmetic::value>::type from_json(T & n,
const json::value & val) { n = val.number(); }
^~~~~~~~~
.../third_party/json.h:140:79: note: template argument deduction/substitution failed:
.../third_party/json.h: In substitution of 'template typename std::enable_if<std::is_arithmetic<_Tp>::value, void>::type from_json(T&, const json::value&) [with T = linalg::vec<float, 3>]':
.../third_party/json.h:145:144: required from 'void field_decoder::operator()(const char*, T&, TS ...) [with T = linalg::vec<float, 3>; TS = {}]'
.../include/physmodel.h:244:76: required from 'void PhysModel::Joint::visit_fields(F) [with F = field_decoder]'
.../third_party/misc.h:110:58: required from 'void visit_fields(T&, F) [with F = field_decoder; T = PhysModel::Joint]'
.../third_party/json.h:146:130: required from 'typename std::enable_if<std::is_class<_Tp>::value>::type from_json(T&, const json::value&) [with T = PhysModel::Joint; typename std::enable_if<std::is_class<_Tp>::value>::type = void]'
.../third_party/json.h:143:157: required from 'void from_json(std::vector&, const json::value&) [with T = PhysModel::Joint]'
.../include/physmodel.h:449:36: required from here
.../third_party/json.h:140:79: error: no type named 'type' in 'struct std::enable_if<false, void>'
.../third_party/json.h: In instantiation of 'void field_decoder::operator()(const char*, T&, TS ...) [with T = linalg::vec<float, 3>; TS = {}]':
.../include/physmodel.h:244:76: required from 'void PhysModel::Joint::visit_fields(F) [with F = field_decoder]'
.../third_party/misc.h:110:58: required from 'void visit_fields(T&, F) [with F = field_decoder; T = PhysModel::Joint]'
.../third_party/json.h:146:130: required from 'typename std::enable_if<std::is_class<_Tp>::value>::type from_json(T&, const json::value&) [with T = PhysModel::Joint; typename std::enable_if<std::is_class<_Tp>::value>::type = void]'
.../third_party/json.h:143:157: required from 'void from_json(std::vector&, const json::value&) [with T = PhysModel::Joint]'
.../include/physmodel.h:449:36: required from here
.../third_party/json.h:141:31: note: candidate: 'template<class T, int N> void from_json(T (&)[N], const json::value&)'
template<class T, int N> void from_json(T (& a)[N], const json::value & val) { for(int i=0; i<N; ++i) from_json(a[i], val[i]); }
^~~~~~~~~
.../third_party/json.h:141:31: note: template argument deduction/substitution failed:
.../third_party/json.h:145:144: note: mismatched types 'T [N]' and 'linalg::vec<float, 3>'
struct field_decoder { const json::value & v; template<class T, class... TS> void operator () (const char * name, T & field, TS...) { from_json(field, v[name]); } };

                                   ~~~~~~~~~^~~~~~~~~~~~~~~~

.../third_party/json.h:142:34: note: candidate: 'template<class T, long long unsigned int N> void from_json(std::array<_Tp, _Nm>&, const json::value&)'
template<class T, size_t N> void from_json(std::array<T,N> & a, const json::value & val) { for(size_t i=0; i<N; ++i) from_json(a[i], val[i]); }
^~~~~~~~~
.../third_party/json.h:142:34: note: template argument deduction/substitution failed:
.../third_party/json.h:145:144: note: 'linalg::vec<float, 3>' is not derived from 'std::array<_Tp, _Nm>'
struct field_decoder { const json::value & v; template<class T, class... TS> void operator () (const char * name, T & field, TS...) { from_json(field, v[name]); } };

                                   ~~~~~~~~~^~~~~~~~~~~~~~~~

.../third_party/json.h:143:24: note: candidate: 'template void from_json(std::vector&, const json::value&)'
template void from_json(std::vector & v, const json::value & val) { v.resize(val.get_array().size()); for(size_t i=0; i<v.size(); ++i) from_json(v[i], val[i]); }
^~~~~~~~~
.../third_party/json.h:143:24: note: template argument deduction/substitution failed:
.../third_party/json.h:145:144: note: 'linalg::vec<float, 3>' is not derived from 'std::vector'
struct field_decoder { const json::value & v; template<class T, class... TS> void operator () (const char * name, T & field, TS...) { from_json(field, v[name]); } };

                                   ~~~~~~~~~^~~~~~~~~~~~~~~~

.../third_party/json.h:144:24: note: candidate: 'template void from_json(std::map<std::__cxx11::basic_string, T>&, const json::value&)'
template void from_json(std::map<std::string, T> & m, const json::value & val) { for (auto &e : val.get_object()) { from_json(m[e.first], e.second); } }
^~~~~~~~~
.../third_party/json.h:144:24: note: template argument deduction/substitution failed:
.../third_party/json.h:145:144: note: 'linalg::vec<float, 3>' is not derived from 'std::map<std::__cxx11::basic_string, T>'
struct field_decoder { const json::value & v; template<class T, class... TS> void operator () (const char * name, T & field, TS...) { from_json(field, v[name]); } };

                                   ~~~~~~~~~^~~~~~~~~~~~~~~~

.../third_party/json.h: In instantiation of 'void field_decoder::operator()(const char*, T&, TS ...) [with T = linalg::vec<float, 4>; TS = {}]':
.../include/physmodel.h:244:140: required from 'void PhysModel::Joint::visit_fields(F) [with
F = field_decoder]'
.../third_party/misc.h:110:58: required from 'void visit_fields(T&, F) [with F = field_decoder; T = PhysModel::Joint]'
.../third_party/json.h:146:130: required from 'typename std::enable_if<std::is_class<_Tp>::value>::type from_json(T&, const json::value&) [with T = PhysModel::Joint; typename std::enable_if<std::is_class<_Tp>::value>::type = void]'
.../third_party/json.h:143:157: required from 'void from_json(std::vector&, const json::value&) [with T = PhysModel::Joint]'
.../include/physmodel.h:449:36: required from here
.../third_party/json.h:145:144: error: no matching function for call to 'from_json(linalg::vec<float, 4>&, const json::value&)'
.../third_party/json.h:138:13: note: candidate: 'void from_json(bool&, const json::value&)'
inline void from_json(bool & b, const json::value & val) { b = val.is_true(); }
^~~~~~~~~
.../third_party/json.h:138:13: note: no known conversion for argument 1 from 'linalg::vec<float, 4>' to 'bool&'
.../third_party/json.h:139:13: note: candidate: 'void from_json(std::__cxx11::string&, const json::value&)'
inline void from_json(std::string & s, const json::value & val) { s = val.string(); }
^~~~~~~~~
.../third_party/json.h:139:13: note: no known conversion for argument 1 from 'linalg::vec<float, 4>' to 'std::__cxx11::string&' {aka 'std::__cxx11::basic_string&'}
.../third_party/json.h:140:79: note: candidate: 'template typename std::enable_if<std::is_arithmetic<_Tp>::value, void>::type from_json(T&, const json::value&)'
template typename std::enable_if<std::is_arithmetic::value>::type from_json(T & n,
const json::value & val) { n = val.number(); }
^~~~~~~~~
.../third_party/json.h:140:79: note: template argument deduction/substitution failed:
.../third_party/json.h: In substitution of 'template typename std::enable_if<std::is_arithmetic<_Tp>::value, void>::type from_json(T&, const json::value&) [with T = linalg::vec<float, 4>]':
.../third_party/json.h:145:144: required from 'void field_decoder::operator()(const char*, T&, TS ...) [with T = linalg::vec<float, 4>; TS = {}]'
.../include/physmodel.h:244:140: required from 'void PhysModel::Joint::visit_fields(F) [with
F = field_decoder]'
.../third_party/misc.h:110:58: required from 'void visit_fields(T&, F) [with F = field_decoder; T = PhysModel::Joint]'
.../third_party/json.h:146:130: required from 'typename std::enable_if<std::is_class<_Tp>::value>::type from_json(T&, const json::value&) [with T = PhysModel::Joint; typename std::enable_if<std::is_class<_Tp>::value>::type = void]'
.../third_party/json.h:143:157: required from 'void from_json(std::vector&, const json::value&) [with T = PhysModel::Joint]'
.../include/physmodel.h:449:36: required from here
.../third_party/json.h:140:79: error: no type named 'type' in 'struct std::enable_if<false, void>'
.../third_party/json.h: In instantiation of 'void field_decoder::operator()(const char*, T&, TS ...) [with T = linalg::vec<float, 4>; TS = {}]':
.../include/physmodel.h:244:140: required from 'void PhysModel::Joint::visit_fields(F) [with
F = field_decoder]'
.../third_party/misc.h:110:58: required from 'void visit_fields(T&, F) [with F = field_decoder; T = PhysModel::Joint]'
.../third_party/json.h:146:130: required from 'typename std::enable_if<std::is_class<_Tp>::value>::type from_json(T&, const json::value&) [with T = PhysModel::Joint; typename std::enable_if<std::is_class<_Tp>::value>::type = void]'
.../third_party/json.h:143:157: required from 'void from_json(std::vector&, const json::value&) [with T = PhysModel::Joint]'
.../include/physmodel.h:449:36: required from here
.../third_party/json.h:141:31: note: candidate: 'template<class T, int N> void from_json(T (&)[N], const json::value&)'
template<class T, int N> void from_json(T (& a)[N], const json::value & val) { for(int i=0; i<N; ++i) from_json(a[i], val[i]); }
^~~~~~~~~
.../third_party/json.h:141:31: note: template argument deduction/substitution failed:
.../third_party/json.h:145:144: note: mismatched types 'T [N]' and 'linalg::vec<float, 4>'
struct field_decoder { const json::value & v; template<class T, class... TS> void operator () (const char * name, T & field, TS...) { from_json(field, v[name]); } };

                                   ~~~~~~~~~^~~~~~~~~~~~~~~~

.../third_party/json.h:142:34: note: candidate: 'template<class T, long long unsigned int N> void from_json(std::array<_Tp, _Nm>&, const json::value&)'
template<class T, size_t N> void from_json(std::array<T,N> & a, const json::value & val) { for(size_t i=0; i<N; ++i) from_json(a[i], val[i]); }
^~~~~~~~~
.../third_party/json.h:142:34: note: template argument deduction/substitution failed:
.../third_party/json.h:145:144: note: 'linalg::vec<float, 4>' is not derived from 'std::array<_Tp, _Nm>'
struct field_decoder { const json::value & v; template<class T, class... TS> void operator () (const char * name, T & field, TS...) { from_json(field, v[name]); } };

                                   ~~~~~~~~~^~~~~~~~~~~~~~~~

.../third_party/json.h:143:24: note: candidate: 'template void from_json(std::vector&, const json::value&)'
template void from_json(std::vector & v, const json::value & val) { v.resize(val.get_array().size()); for(size_t i=0; i<v.size(); ++i) from_json(v[i], val[i]); }
^~~~~~~~~
.../third_party/json.h:143:24: note: template argument deduction/substitution failed:
.../third_party/json.h:145:144: note: 'linalg::vec<float, 4>' is not derived from 'std::vector'
struct field_decoder { const json::value & v; template<class T, class... TS> void operator () (const char * name, T & field, TS...) { from_json(field, v[name]); } };

                                   ~~~~~~~~~^~~~~~~~~~~~~~~~

.../third_party/json.h:144:24: note: candidate: 'template void from_json(std::map<std::__cxx11::basic_string, T>&, const json::value&)'
template void from_json(std::map<std::string, T> & m, const json::value & val) { for (auto &e : val.get_object()) {
from_json(m[e.first], e.second); } }
^~~~~~~~~
.../third_party/json.h:144:24: note: template argument deduction/substitution failed:
.../third_party/json.h:145:144: note: 'linalg::vec<float, 4>' is not derived from 'std::map<std::__cxx11::basic_string, T>'
struct field_decoder { const json::value & v; template<class T, class... TS> void operator () (const char * name, T & field,
TS...) { from_json(field, v[name]); } };

@MSLewis522
Copy link
Author

Update: I have similar issues whenever I try to build anything from these folders. (openvr demo, synthetic hand tracker, etc)

@melax
Copy link
Contributor

melax commented Nov 23, 2020

Errors like that certainly aren't obvious. One possibility... microsoft visual c++ (msvc) tends to be more forgiving about the ordering of overloaded template function. trying msvc with stricter conformance mode (/permissive- flag), attempts to compile generate similar error messages. To fix... Moving the serialization support for the linalg types (float3, int2, etc) to put them right inside of the json.h, to solved this problem.

can you try grabbing the two json related header files in the attached zip and replacing the existing versions in the hand_tracking_samples/third_party/ subdirectory?

json_compilation_possible_fix.zip

@MSLewis522
Copy link
Author

Ah ! You're a complete lifesaver!
But.... different errors now </3
looks like its having trouble with the temp files created while trying to run the .exe version of the realtime-hand-tracker.cpp

C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text+0xeb5): undefined reference to __imp_glPushAttrib' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text+0xec3): undefined reference to __imp_glDisable'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text+0xed1): undefined reference to __imp_glDisable' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text+0xedf): undefined reference to __imp_glDisable'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text+0xeed): undefined reference to __imp_glMatrixMode' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text+0xef6): undefined reference to __imp_glPushMatrix'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text+0xeff): undefined reference to __imp_glLoadIdentity' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text+0xf40): undefined reference to __imp_glOrtho'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text+0xf4e): undefined reference to __imp_glMatrixMode' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text+0xf57): undefined reference to __imp_glPushMatrix'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text+0xf60): undefined reference to __imp_glLoadIdentity' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text+0xf6e): undefined reference to __imp_glEnable'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text+0xf81): undefined reference to __imp_glPixelStorei' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text+0xf97): undefined reference to __imp_glBindTexture'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text+0xfb0): undefined reference to __imp_glTexParameteri' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text+0xfc9): undefined reference to __imp_glTexParameteri'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text+0xfe2): undefined reference to __imp_glTexParameteri' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text+0xffb): undefined reference to __imp_glTexParameteri'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text+0x1016): undefined reference to __imp_glTexEnvf' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text+0x105d): undefined reference to __imp_glTexImage2D'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text+0x106b): undefined reference to __imp_glBegin' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text+0x108c): undefined reference to __imp_glColor3f'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text+0x1135): undefined reference to __imp_glTexCoord2f' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text+0x118d): undefined reference to __imp_glEnd'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text+0x119b): undefined reference to __imp_glMatrixMode' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text+0x11a4): undefined reference to __imp_glPopMatrix'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text+0x11b2): undefined reference to __imp_glMatrixMode' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text+0x11bb): undefined reference to __imp_glPopMatrix'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text+0x11c4): undefined reference to __imp_glPopAttrib' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text+0x1658): undefined reference to __imp_glBegin'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text+0x1681): undefined reference to __imp_glColor4f' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text+0x182c): undefined reference to __imp_glTexCoord2f'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text+0x185b): undefined reference to __imp_glEnd' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text+0x19a3): undefined reference to __imp_glBegin'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text+0x19cc): undefined reference to __imp_glColor4f' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text+0x1ba7): undefined reference to __imp_glTexCoord2f'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text+0x1c30): undefined reference to __imp_glEnd' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text+0x5b4e): undefined reference to rs_set_device_options'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text+0x5c51): undefined reference to rs_reset_device_options_to_default' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text+0x5ccd): undefined reference to rs_set_device_options'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text+0x5d44): undefined reference to rs_set_device_options' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text+0x5d81): undefined reference to rs_set_device_options'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text+0x6454): undefined reference to __imp_glPushAttrib' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text+0x6479): undefined reference to __imp_glViewport'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text+0x64ce): undefined reference to __imp_glClearColor' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text+0x64dc): undefined reference to __imp_glClear'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text+0x6e13): undefined reference to __imp_glPopAttrib' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_Z11glVertex3fvRKN6linalg3vecIfLi3EEE[_Z11glVertex3fvRKN6linalg3vecIfLi3EEE]+0x16): undefined reference to __imp_glVertex3fv'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_Z11glNormal3fvRKN6linalg3vecIfLi3EEE[_Z11glNormal3fvRKN6linalg3vecIfLi3EEE]+0x16): undefined reference to __imp_glNormal3fv' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_Z13glTexCoord2fvRKN6linalg3vecIfLi2EEE[_Z13glTexCoord2fvRKN6linalg3vecIfLi2EEE]+0x16): undefined reference to __imp_glTexCoord2fv'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_Z10glColor3fvRKN6linalg3vecIfLi3EEE[_Z10glColor3fvRKN6linalg3vecIfLi3EEE]+0x16): undefined reference to __imp_glColor3fv' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_Z10glColor4fvRKN6linalg3vecIfLi4EEE[_Z10glColor4fvRKN6linalg3vecIfLi4EEE]+0x16): undefined reference to __imp_glColor4fv'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_Z13glMultMatrixfRKN6linalg3matIfLi4ELi4EEE[_Z13glMultMatrixfRKN6linalg3matIfLi4ELi4EEE]+0x16): undefined reference to __imp_glMultMatrixf' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_Z13glPerspectiveffff[_Z13glPerspectiveffff]+0xd6): undefined reference to __imp_glFrustum'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN5GLWin18CreateOpenGLWindowEPKc[_ZN5GLWin18CreateOpenGLWindowEPKc]+0xbe): undefined reference to __imp_ChoosePixelFormat' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN5GLWin18CreateOpenGLWindowEPKc[_ZN5GLWin18CreateOpenGLWindowEPKc]+0x111): undefined reference to __imp_SetPixelFormat'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN5GLWin18CreateOpenGLWindowEPKc[_ZN5GLWin18CreateOpenGLWindowEPKc]+0x17e): undefined reference to RegisterTouchWindow(bool, float)' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN5GLWin10WinReshapeEii[_ZN5GLWin10WinReshapeEii]+0x4d): undefined reference to __imp_glViewport'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN5GLWin10WinReshapeEii[_ZN5GLWin10WinReshapeEii]+0x5b): undefined reference to __imp_glMatrixMode' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN5GLWin10WinReshapeEii[_ZN5GLWin10WinReshapeEii]+0x64): undefined reference to __imp_glLoadIdentity'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN5GLWin10WinReshapeEii[_ZN5GLWin10WinReshapeEii]+0xa3): undefined reference to __imp_glMatrixMode' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN5GLWin10WinReshapeEii[_ZN5GLWin10WinReshapeEii]+0xac): undefined reference to __imp_glLoadIdentity'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN5GLWin19DestroyOpenGLWindowEv[_ZN5GLWin19DestroyOpenGLWindowEv]+0x25): undefined reference to __imp_wglMakeCurrent' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN5GLWin19DestroyOpenGLWindowEv[_ZN5GLWin19DestroyOpenGLWindowEv]+0x5a): undefined reference to __imp_wglDeleteContext'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN5GLWin12PrintStringRERKN6linalg3vecIfLi2EEEPKc[_ZN5GLWin12PrintStringRERKN6linalg3vecIfLi2EEEPKc]+0x2f): undefined reference to __imp_glPushAttrib' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN5GLWin12PrintStringRERKN6linalg3vecIfLi2EEEPKc[_ZN5GLWin12PrintStringRERKN6linalg3vecIfLi2EEEPKc]+0x3d): undefined reference to __imp_glDisable'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN5GLWin12PrintStringRERKN6linalg3vecIfLi2EEEPKc[_ZN5GLWin12PrintStringRERKN6linalg3vecIfLi2EEEPKc]+0x4b): undefined reference to __imp_glDisable' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN5GLWin12PrintStringRERKN6linalg3vecIfLi2EEEPKc[_ZN5GLWin12PrintStringRERKN6linalg3vecIfLi2EEEPKc]+0x59): undefined reference to __imp_glDisable'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN5GLWin12PrintStringRERKN6linalg3vecIfLi2EEEPKc[_ZN5GLWin12PrintStringRERKN6linalg3vecIfLi2EEEPKc]+0x67): undefined reference to __imp_glMatrixMode' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN5GLWin12PrintStringRERKN6linalg3vecIfLi2EEEPKc[_ZN5GLWin12PrintStringRERKN6linalg3vecIfLi2EEEPKc]+0x70): undefined reference to __imp_glPushMatrix'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN5GLWin12PrintStringRERKN6linalg3vecIfLi2EEEPKc[_ZN5GLWin12PrintStringRERKN6linalg3vecIfLi2EEEPKc]+0x79): undefined reference to __imp_glLoadIdentity' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN5GLWin12PrintStringRERKN6linalg3vecIfLi2EEEPKc[_ZN5GLWin12PrintStringRERKN6linalg3vecIfLi2EEEPKc]+0x87): undefined reference to __imp_glMatrixMode'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN5GLWin12PrintStringRERKN6linalg3vecIfLi2EEEPKc[_ZN5GLWin12PrintStringRERKN6linalg3vecIfLi2EEEPKc]+0x90): undefined reference to __imp_glPushMatrix' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN5GLWin12PrintStringRERKN6linalg3vecIfLi2EEEPKc[_ZN5GLWin12PrintStringRERKN6linalg3vecIfLi2EEEPKc]+0x99): undefined reference to __imp_glLoadIdentity'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN5GLWin12PrintStringRERKN6linalg3vecIfLi2EEEPKc[_ZN5GLWin12PrintStringRERKN6linalg3vecIfLi2EEEPKc]+0xba): undefined reference to __imp_glGetIntegerv' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN5GLWin12PrintStringRERKN6linalg3vecIfLi2EEEPKc[_ZN5GLWin12PrintStringRERKN6linalg3vecIfLi2EEEPKc]+0x11a): undefined reference to __imp_glOrtho'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN5GLWin12PrintStringRERKN6linalg3vecIfLi2EEEPKc[_ZN5GLWin12PrintStringRERKN6linalg3vecIfLi2EEEPKc]+0x1ba): undefined reference
to __imp_glEnableClientState' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN5GLWin12PrintStringRERKN6linalg3vecIfLi2EEEPKc[_ZN5GLWin12PrintStringRERKN6linalg3vecIfLi2EEEPKc]+0x1da): undefined reference to __imp_glVertexPointer'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN5GLWin12PrintStringRERKN6linalg3vecIfLi2EEEPKc[_ZN5GLWin12PrintStringRERKN6linalg3vecIfLi2EEEPKc]+0x1f6): undefined reference
to __imp_glDrawArrays' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN5GLWin12PrintStringRERKN6linalg3vecIfLi2EEEPKc[_ZN5GLWin12PrintStringRERKN6linalg3vecIfLi2EEEPKc]+0x204): undefined reference to __imp_glDisableClientState'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN5GLWin12PrintStringRERKN6linalg3vecIfLi2EEEPKc[_ZN5GLWin12PrintStringRERKN6linalg3vecIfLi2EEEPKc]+0x20d): undefined reference
to __imp_glPopMatrix' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN5GLWin12PrintStringRERKN6linalg3vecIfLi2EEEPKc[_ZN5GLWin12PrintStringRERKN6linalg3vecIfLi2EEEPKc]+0x21b): undefined reference to __imp_glMatrixMode'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN5GLWin12PrintStringRERKN6linalg3vecIfLi2EEEPKc[_ZN5GLWin12PrintStringRERKN6linalg3vecIfLi2EEEPKc]+0x224): undefined reference
to __imp_glPopMatrix' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN5GLWin12PrintStringRERKN6linalg3vecIfLi2EEEPKc[_ZN5GLWin12PrintStringRERKN6linalg3vecIfLi2EEEPKc]+0x22d): undefined reference to __imp_glPopAttrib'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN5GLWin13CoordTexToPixEN6linalg3vecIiLi2EEEi[_ZN5GLWin13CoordTexToPixEN6linalg3vecIiLi2EEEi]+0x2f): undefined reference to __imp_glGetIntegerv' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN5GLWin12PrintStringPEN6linalg3vecIiLi2EEEPKcz[_ZN5GLWin12PrintStringPEN6linalg3vecIiLi2EEEPKcz]+0x7a): undefined reference to __imp_glGetIntegerv'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN5GLWinC1EPKcii[_ZN5GLWinC1EPKcii]+0x10a): undefined reference to __imp_wglCreateContext' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN5GLWinC1EPKcii[_ZN5GLWinC1EPKcii]+0x13a): undefined reference to __imp_wglMakeCurrent'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN5GLWinC1EPKcii[_ZN5GLWinC1EPKcii]+0x173): undefined reference to __imp_glEnable' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN5GLWin11SwapBuffersEv[_ZN5GLWin11SwapBuffersEv]+0x1d): undefined reference to __imp_SwapBuffers'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_Z9drawlinesRKSt6vectorISt4pairIN6linalg3vecIfLi3EEES3_ESaIS4_EES3_f[_Z9drawlinesRKSt6vectorISt4pairIN6linalg3vecIfLi3EEES3_ESaIS4_EES3_f]+0x22): undefined reference to __imp_glPushAttrib' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_Z9drawlinesRKSt6vectorISt4pairIN6linalg3vecIfLi3EEES3_ESaIS4_EES3_f[_Z9drawlinesRKSt6vectorISt4pairIN6linalg3vecIfLi3EEES3_ESaIS4_EES3_f]+0x32): undefined reference to __imp_glLineWidth'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_Z9drawlinesRKSt6vectorISt4pairIN6linalg3vecIfLi3EEES3_ESaIS4_EES3_f[_Z9drawlinesRKSt6vectorISt4pairIN6linalg3vecIfLi3EEES3_ESaIS4_EES3_f]+0x40): undefined reference to __imp_glBegin' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_Z9drawlinesRKSt6vectorISt4pairIN6linalg3vecIfLi3EEES3_ESaIS4_EES3_f[_Z9drawlinesRKSt6vectorISt4pairIN6linalg3vecIfLi3EEES3_ESaIS4_EES3_f]+0xda): undefined reference to __imp_glEnd'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_Z9drawlinesRKSt6vectorISt4pairIN6linalg3vecIfLi3EEES3_ESaIS4_EES3_f[_Z9drawlinesRKSt6vectorISt4pairIN6linalg3vecIfLi3EEES3_ESaIS4_EES3_f]+0xeb): undefined reference to __imp_glLineWidth' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_Z9drawlinesRKSt6vectorISt4pairIN6linalg3vecIfLi3EEES3_ESaIS4_EES3_f[_Z9drawlinesRKSt6vectorISt4pairIN6linalg3vecIfLi3EEES3_ESaIS4_EES3_f]+0xf4): undefined reference to __imp_glPopAttrib'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_Z8MeshDrawRK4Mesh[_Z8MeshDrawRK4Mesh]+0x12): undefined reference to __imp_glPushMatrix' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_Z8MeshDrawRK4Mesh[_Z8MeshDrawRK4Mesh]+0x50): undefined reference to __imp_glBegin'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_Z8MeshDrawRK4Mesh[_Z8MeshDrawRK4Mesh]+0x101): undefined reference to __imp_glEnd' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_Z8MeshDrawRK4Mesh[_Z8MeshDrawRK4Mesh]+0x10a): undefined reference to __imp_glPopMatrix'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12render_sceneC1Ev[_ZN12render_sceneC1Ev]+0x18): undefined reference to __imp_glPushAttrib' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12render_sceneC1Ev[_ZN12render_sceneC1Ev]+0x26): undefined reference to __imp_glMatrixMode'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12render_sceneC1Ev[_ZN12render_sceneC1Ev]+0x2f): undefined reference to __imp_glPushMatrix' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12render_sceneC1Ev[_ZN12render_sceneC1Ev]+0x38): undefined reference to __imp_glLoadIdentity'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12render_sceneC1Ev[_ZN12render_sceneC1Ev]+0x59): undefined reference to __imp_glGetIntegerv' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12render_sceneC1Ev[_ZN12render_sceneC1Ev]+0xbd): undefined reference to __imp_glMatrixMode'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12render_sceneC1Ev[_ZN12render_sceneC1Ev]+0xc6): undefined reference to __imp_glPushMatrix' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12render_sceneC1Ev[_ZN12render_sceneC1Ev]+0xcf): undefined reference to __imp_glLoadIdentity'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12render_sceneC1ERK4PoseRKSt6vectorIP4MeshSaIS5_EERKS3_I9SegmentPCSaISA_EERKS3_I8VertexPCSaISF_EE[_ZN12render_sceneC1ERK4PoseRKSt6vectorIP4MeshSaIS5_EERKS3_I9SegmentPCSaISA_EERKS3_I8VertexPCSaISF_EE]+0x3f): undefined reference to
__imp_glBegin' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12render_sceneC1ERK4PoseRKSt6vectorIP4MeshSaIS5_EERKS3_I9SegmentPCSaISA_EERKS3_I8VertexPCSaISF_EE[_ZN12render_sceneC1ERK4PoseRKSt6vectorIP4MeshSaIS5_EERKS3_I9SegmentPCSaISA_EERKS3_I8VertexPCSaISF_EE]+0x11d): undefined reference to __imp_glEnd'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12render_sceneC1ERK4PoseRKSt6vectorIP4MeshSaIS5_EERKS3_I9SegmentPCSaISA_EERKS3_I8VertexPCSaISF_EE[_ZN12render_sceneC1ERK4PoseRKSt6vectorIP4MeshSaIS5_EERKS3_I9SegmentPCSaISA_EERKS3_I8VertexPCSaISF_EE]+0x12b): undefined reference to __imp_glBegin' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12render_sceneC1ERK4PoseRKSt6vectorIP4MeshSaIS5_EERKS3_I9SegmentPCSaISA_EERKS3_I8VertexPCSaISF_EE[_ZN12render_sceneC1ERK4PoseRKSt6vectorIP4MeshSaIS5_EERKS3_I9SegmentPCSaISA_EERKS3_I8VertexPCSaISF_EE]+0x1ce): undefined reference to __imp_glEnd'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12render_sceneC1ERK4PoseRKSt6vectorIP4MeshSaIS5_EERKS3_I9SegmentPCSaISA_EERKS3_I8VertexPCSaISF_EE[_ZN12render_sceneC1ERK4PoseRKSt6vectorIP4MeshSaIS5_EERKS3_I9SegmentPCSaISA_EERKS3_I8VertexPCSaISF_EE]+0x1dc): undefined reference to __imp_glPushAttrib' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12render_sceneC1ERK4PoseRKSt6vectorIP4MeshSaIS5_EERKS3_I9SegmentPCSaISA_EERKS3_I8VertexPCSaISF_EE[_ZN12render_sceneC1ERK4PoseRKSt6vectorIP4MeshSaIS5_EERKS3_I9SegmentPCSaISA_EERKS3_I8VertexPCSaISF_EE]+0x1ea): undefined reference to __imp_glEnable'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12render_sceneC1ERK4PoseRKSt6vectorIP4MeshSaIS5_EERKS3_I9SegmentPCSaISA_EERKS3_I8VertexPCSaISF_EE[_ZN12render_sceneC1ERK4PoseRKSt6vectorIP4MeshSaIS5_EERKS3_I9SegmentPCSaISA_EERKS3_I8VertexPCSaISF_EE]+0x20b): undefined reference to __imp_glColor3f' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12render_sceneC1ERK4PoseRKSt6vectorIP4MeshSaIS5_EERKS3_I9SegmentPCSaISA_EERKS3_I8VertexPCSaISF_EE[_ZN12render_sceneC1ERK4PoseRKSt6vectorIP4MeshSaIS5_EERKS3_I9SegmentPCSaISA_EERKS3_I8VertexPCSaISF_EE]+0x219): undefined reference to __imp_glEnable'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12render_sceneC1ERK4PoseRKSt6vectorIP4MeshSaIS5_EERKS3_I9SegmentPCSaISA_EERKS3_I8VertexPCSaISF_EE[_ZN12render_sceneC1ERK4PoseRKSt6vectorIP4MeshSaIS5_EERKS3_I9SegmentPCSaISA_EERKS3_I8VertexPCSaISF_EE]+0x227): undefined reference to __imp_glEnable' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12render_sceneC1ERK4PoseRKSt6vectorIP4MeshSaIS5_EERKS3_I9SegmentPCSaISA_EERKS3_I8VertexPCSaISF_EE[_ZN12render_sceneC1ERK4PoseRKSt6vectorIP4MeshSaIS5_EERKS3_I9SegmentPCSaISA_EERKS3_I8VertexPCSaISF_EE]+0x29c): undefined reference to __imp_glPopAttrib'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12render_sceneD1Ev[_ZN12render_sceneD1Ev]+0x14): undefined reference to __imp_glMatrixMode' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12render_sceneD1Ev[_ZN12render_sceneD1Ev]+0x1d): undefined reference to __imp_glPopMatrix'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12render_sceneD1Ev[_ZN12render_sceneD1Ev]+0x2b): undefined reference to __imp_glMatrixMode' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12render_sceneD1Ev[_ZN12render_sceneD1Ev]+0x34): undefined reference to __imp_glPopMatrix'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12render_sceneD1Ev[_ZN12render_sceneD1Ev]+0x3d): undefined reference to __imp_glPopAttrib' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN6Widget9DrawBeginEv[_ZN6Widget9DrawBeginEv]+0x1c): undefined reference to __imp_glPushAttrib'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN6Widget9DrawBeginEv[_ZN6Widget9DrawBeginEv]+0x4a): undefined reference to __imp_glViewport' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN6Widget9DrawBeginEv[_ZN6Widget9DrawBeginEv]+0x58): undefined reference to __imp_glEnable'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN6Widget9DrawBeginEv[_ZN6Widget9DrawBeginEv]+0x86): undefined reference to __imp_glScissor' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN6Widget9DrawBeginEv[_ZN6Widget9DrawBeginEv]+0x94): undefined reference to __imp_glMatrixMode'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN6Widget9DrawBeginEv[_ZN6Widget9DrawBeginEv]+0x9d): undefined reference to __imp_glPushMatrix' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN6Widget9DrawBeginEv[_ZN6Widget9DrawBeginEv]+0xab): undefined reference to __imp_glMatrixMode'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN6Widget9DrawBeginEv[_ZN6Widget9DrawBeginEv]+0xb4): undefined reference to __imp_glPushMatrix' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN6Widget9DrawBeginEv[_ZN6Widget9DrawBeginEv]+0xbd): undefined reference to __imp_glLoadIdentity'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN6Widget7DrawEndEv[_ZN6Widget7DrawEndEv]+0x14): undefined reference to __imp_glMatrixMode' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN6Widget7DrawEndEv[_ZN6Widget7DrawEndEv]+0x1d): undefined reference to __imp_glPopMatrix'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN6Widget7DrawEndEv[_ZN6Widget7DrawEndEv]+0x2b): undefined reference to __imp_glMatrixMode' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN6Widget7DrawEndEv[_ZN6Widget7DrawEndEv]+0x34): undefined reference to __imp_glPopMatrix'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN6Widget7DrawEndEv[_ZN6Widget7DrawEndEv]+0x63): undefined reference to __imp_glViewport' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN6Widget7DrawEndEv[_ZN6Widget7DrawEndEv]+0x6c): undefined reference to __imp_glPopAttrib'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN6Widget5orthoEv[_ZN6Widget5orthoEv]+0x14): undefined reference to __imp_glMatrixMode' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN6Widget5orthoEv[_ZN6Widget5orthoEv]+0x1d): undefined reference to __imp_glLoadIdentity'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN6Widget5orthoEv[_ZN6Widget5orthoEv]+0x5e): undefined reference to __imp_glOrtho' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN6Widget5orthoEv[_ZN6Widget5orthoEv]+0x6c): undefined reference to __imp_glMatrixMode'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN6Widget5orthoEv[_ZN6Widget5orthoEv]+0x75): undefined reference to __imp_glLoadIdentity' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12WidgetSwitch6RenderEv[_ZN12WidgetSwitch6RenderEv]+0x28): undefined reference to __imp_glBegin'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12WidgetSwitch6RenderEv[_ZN12WidgetSwitch6RenderEv]+0xaa): undefined reference to __imp_glVertex3f' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12WidgetSwitch6RenderEv[_ZN12WidgetSwitch6RenderEv]+0xc3): undefined reference to __imp_glVertex3f'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12WidgetSwitch6RenderEv[_ZN12WidgetSwitch6RenderEv]+0xe0): undefined reference to __imp_glVertex3f' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12WidgetSwitch6RenderEv[_ZN12WidgetSwitch6RenderEv]+0x101): undefined reference to __imp_glVertex3f'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12WidgetSwitch6RenderEv[_ZN12WidgetSwitch6RenderEv]+0x10a): undefined reference to __imp_glEnd' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12WidgetSwitch6RenderEv[_ZN12WidgetSwitch6RenderEv]+0x118): undefined reference to __imp_glMatrixMode'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12WidgetSwitch6RenderEv[_ZN12WidgetSwitch6RenderEv]+0x121): undefined reference to __imp_glLoadIdentity' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12WidgetSwitch6RenderEv[_ZN12WidgetSwitch6RenderEv]+0x170): undefined reference to __imp_glOrtho'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12WidgetSwitch6RenderEv[_ZN12WidgetSwitch6RenderEv]+0x17e): undefined reference to __imp_glMatrixMode' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12WidgetSwitch6RenderEv[_ZN12WidgetSwitch6RenderEv]+0x18c): undefined reference to __imp_glBegin'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12WidgetSwitch6RenderEv[_ZN12WidgetSwitch6RenderEv]+0x248): undefined reference to __imp_glVertex3f' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12WidgetSwitch6RenderEv[_ZN12WidgetSwitch6RenderEv]+0x269): undefined reference to __imp_glVertex3f'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12WidgetSwitch6RenderEv[_ZN12WidgetSwitch6RenderEv]+0x2a3): undefined reference to __imp_glVertex3f' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12WidgetSwitch6RenderEv[_ZN12WidgetSwitch6RenderEv]+0x2fa): undefined reference to __imp_glVertex3f'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12WidgetSwitch6RenderEv[_ZN12WidgetSwitch6RenderEv]+0x355): undefined reference to __imp_glVertex3f' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12WidgetSwitch6RenderEv[_ZN12WidgetSwitch6RenderEv]+0x387): more undefined references to __imp_glVertex3f' follow
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12WidgetSwitch6RenderEv[_ZN12WidgetSwitch6RenderEv]+0x447): undefined reference to __imp_glColor3f' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12WidgetSwitch6RenderEv[_ZN12WidgetSwitch6RenderEv]+0x450): undefined reference to __imp_glEnd'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12WidgetButton6RenderEv[_ZN12WidgetButton6RenderEv]+0x32): undefined reference to __imp_glBegin' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12WidgetButton6RenderEv[_ZN12WidgetButton6RenderEv]+0x14c): undefined reference to __imp_glVertex3f'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12WidgetButton6RenderEv[_ZN12WidgetButton6RenderEv]+0x165): undefined reference to __imp_glVertex3f' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12WidgetButton6RenderEv[_ZN12WidgetButton6RenderEv]+0x182): undefined reference to __imp_glVertex3f'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12WidgetButton6RenderEv[_ZN12WidgetButton6RenderEv]+0x1a3): undefined reference to __imp_glVertex3f' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12WidgetButton6RenderEv[_ZN12WidgetButton6RenderEv]+0x1ac): undefined reference to __imp_glEnd'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN12WidgetButton6RenderEv[_ZN12WidgetButton6RenderEv]+0x27c): undefined reference to __imp_glColor3f' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN2rs5errorC1EP8rs_error[_ZN2rs5errorC1EP8rs_error]+0x1e): undefined reference to rs_get_error_message'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN2rs5errorC1EP8rs_error[_ZN2rs5errorC1EP8rs_error]+0x63): undefined reference to rs_get_failed_function' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN2rs5errorC1EP8rs_error[_ZN2rs5errorC1EP8rs_error]+0x8a): undefined reference to rs_get_failed_function'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN2rs5errorC1EP8rs_error[_ZN2rs5errorC1EP8rs_error]+0xed): undefined reference to rs_get_failed_args' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN2rs5errorC1EP8rs_error[_ZN2rs5errorC1EP8rs_error]+0x114): undefined reference to rs_get_failed_args'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN2rs5errorC1EP8rs_error[_ZN2rs5errorC1EP8rs_error]+0x177): undefined reference to rs_free_error' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN2rs7contextC1Ev[_ZN2rs7contextC1Ev]+0x21): undefined reference to rs_create_context'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN2rs7contextD1Ev[_ZN2rs7contextD1Ev]+0x1c): undefined reference to rs_delete_context' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZNK2rs7context16get_device_countEv[_ZNK2rs7context16get_device_countEv]+0x23): undefined reference to rs_get_device_count'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN2rs7context10get_deviceEi[_ZN2rs7context10get_deviceEi]+0x2c): undefined reference to rs_get_device' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZNK2rs6device8get_nameEv[_ZNK2rs6device8get_nameEv]+0x20): undefined reference to rs_get_device_name'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZNK2rs6device10get_serialEv[_ZNK2rs6device10get_serialEv]+0x20): undefined reference to rs_get_device_serial' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZNK2rs6device20get_firmware_versionEv[_ZNK2rs6device20get_firmware_versionEv]+0x20): undefined reference to rs_get_device_firmware_version'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$ZNK2rs6device14get_extrinsicsENS_6streamES1[ZNK2rs6device14get_extrinsicsENS_6streamES1]+0x39): undefined reference to rs_get_device_extrinsics' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZNK2rs6device15get_depth_scaleEv[_ZNK2rs6device15get_depth_scaleEv]+0x20): undefined reference to rs_get_device_depth_scale'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZNK2rs6device15supports_optionENS_6optionE[_ZNK2rs6device15supports_optionENS_6optionE]+0x28): undefined reference to rs_device_supports_option' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZNK2rs6device21get_stream_mode_countENS_6streamE[_ZNK2rs6device21get_stream_mode_countENS_6streamE]+0x28): undefined reference to rs_get_stream_mode_count'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN2rs6device13enable_streamENS_6streamEiiNS_6formatEiNS_20output_buffer_formatE[_ZN2rs6device13enable_streamENS_6streamEiiNS_6formatEiNS_20output_buffer_formatE]+0x52): undefined reference to rs_enable_stream_ex' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZNK2rs6device21get_stream_intrinsicsENS_6streamE[_ZNK2rs6device21get_stream_intrinsicsENS_6streamE]+0x32): undefined reference to rs_get_stream_intrinsics'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN2rs6device5startENS_6sourceE[_ZN2rs6device5startENS_6sourceE]+0x2b): undefined reference to rs_start_source' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN2rs6device10set_optionENS_6optionEd[_ZN2rs6device10set_optionENS_6optionEd]+0x36): undefined reference to rs_set_device_option'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN2rs6device15wait_for_framesEv[_ZN2rs6device15wait_for_framesEv]+0x20): undefined reference to rs_wait_for_frames' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZNK2rs6device8supportsENS_12capabilitiesE[_ZNK2rs6device8supportsENS_12capabilitiesE]+0x28): undefined reference to rs_supports'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZNK2rs6device14get_frame_dataENS_6streamE[_ZNK2rs6device14get_frame_dataENS_6streamE]+0x28): undefined reference to rs_get_frame_data' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN13WidgetSlider_IfE7drawbarEfN6linalg3vecIfLi3EEES3_[_ZN13WidgetSlider_IfE7drawbarEfN6linalg3vecIfLi3EEES3_]+0x2d): undefined reference to __imp_glBegin'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$ZN13WidgetSlider_IfE7drawbarEfN6linalg3vecIfLi3EEES3[ZN13WidgetSlider_IfE7drawbarEfN6linalg3vecIfLi3EEES3]+0x6a): undefined reference to __imp_glVertex3f' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN13WidgetSlider_IfE7drawbarEfN6linalg3vecIfLi3EEES3_[_ZN13WidgetSlider_IfE7drawbarEfN6linalg3vecIfLi3EEES3_]+0x83): undefined reference to __imp_glVertex3f'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$ZN13WidgetSlider_IfE7drawbarEfN6linalg3vecIfLi3EEES3[ZN13WidgetSlider_IfE7drawbarEfN6linalg3vecIfLi3EEES3]+0xa0): undefined reference to __imp_glVertex3f' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN13WidgetSlider_IfE7drawbarEfN6linalg3vecIfLi3EEES3_[_ZN13WidgetSlider_IfE7drawbarEfN6linalg3vecIfLi3EEES3_]+0xc1): undefined reference to __imp_glVertex3f'
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$ZN13WidgetSlider_IfE7drawbarEfN6linalg3vecIfLi3EEES3[ZN13WidgetSlider_IfE7drawbarEfN6linalg3vecIfLi3EEES3]+0xe6): undefined reference to __imp_glVertex3f' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN13WidgetSlider_IfE7drawbarEfN6linalg3vecIfLi3EEES3_[_ZN13WidgetSlider_IfE7drawbarEfN6linalg3vecIfLi3EEES3_]+0x103): more undefined references to __imp_glVertex3f' follow
C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$ZN13WidgetSlider_IfE7drawbarEfN6linalg3vecIfLi3EEES3[ZN13WidgetSlider_IfE7drawbarEfN6linalg3vecIfLi3EEES3]+0x1ee): undefined
reference to __imp_glColor3f' C:\Users\O62220\AppData\Local\Temp\ccSc9f5t.o:realtime-hand-tracker.cpp:(.text$_ZN13WidgetSlider_IfE7drawbarEfN6linalg3vecIfLi3EEES3_[_ZN13WidgetSlider_IfE7drawbarEfN6linalg3vecIfLi3EEES3_]+0x1f7): undefined reference to __imp_glEnd'

@MSLewis522
Copy link
Author

Wait sorry not run the .exe, these are the errors when trying to build the exe from the cpp

@melax
Copy link
Contributor

melax commented Nov 23, 2020

These look like link-time errors, and seem to indicate it is not finding the opengl library. I'm not as familiar with g++. Perhaps you need to add -lGL on the command line so it will link with the opengl library. Start first with trying to compile and run the synthetic hand tracker demo program. other than opengl, it doesn't have additional dependencies. It doesn't need the realsense camera (and associated library) since it creates a fake depth map from rendering to the z-buffer, so For all the programs, in an effort to hopefully compile out of the box on PCs and maximize compatibility, the source code only uses opengl version 1.1 (opengl red book) function calls. Also, when compiling the source, you may want to add a flag to optimize the code, -O, so it isn't painfully slow.

An alternative suggestion... From the filenames in the error message above, it looks like your on a PC Windows system. Have you tried just using visual studio (such as visual studio community 2019 free version), which uses the Microsoft visual c++ (MSVC) compiler? Is that an option? then the project files ( .sln and .vcxproj files) include any library dependencies.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants