apple / turicreate

Turi Create simplifies the development of custom machine learning models.
BSD 3-Clause "New" or "Revised" License
11.17k stars 1.13k forks source link

Compilation error while using C++ API #613

Closed hkundnani closed 3 years ago

hkundnani commented 6 years ago

I am trying to use the C++ API and was referring to the doc available under userguide directory. While trying to compile the example code provided in the guide I am getting errors "undefined reference to boost::system::generic_category(), undefined reference to `boost::system::system_category()". I have attached the compilation log for the reference.

In file included from ../turicreate/src/generics/type_trait_def.hpp:19:0,
                 from ../turicreate/src/generics/remove_member_pointer.hpp:30,
                 from ../turicreate/src/cppipc/client/issue.hpp:15,
                 from ../turicreate/src/cppipc/client/comm_client.hpp:21,
                 from ../turicreate/src/cppipc/client/object_proxy.hpp:10,
                 from ../turicreate/src/cppipc/magic_macros.hpp:9,
                 from ../turicreate/src/unity/lib/api/model_interface.hpp:13,
                 from ../turicreate/src/unity/lib/toolkit_class_base.hpp:13,
                 from ../turicreate/src/unity/lib/toolkit_class_macros.hpp:12,
                 from ../turicreate/src/unity/lib/visualization/plot.hpp:4,
                 from ../turicreate/src/unity/lib/api/unity_sarray_interface.hpp:13,
                 from ../turicreate/src/unity/lib/api/unity_global_interface.hpp:12,
                 from ../turicreate/src/unity/lib/unity_global.hpp:13,
                 from model_predict.cpp:7:
../turicreate/deps/local/include/boost/type_traits/detail/template_arity_spec.hpp:13:84: note: #pragma message: NOTE: Use of this header (template_arity_spec.hpp) is deprecated
 # pragma message("NOTE: Use of this header (template_arity_spec.hpp) is deprecated")
                                                                                    ^
In file included from ../turicreate/src/util/dense_bitset.hpp:16:0,
                 from ../turicreate/src/sframe/sarray_file_format_v2.hpp:16,
                 from ../turicreate/src/sframe/sarray.hpp:20,
                 from ../turicreate/src/sframe/sframe.hpp:14,
                 from ../turicreate/src/unity/lib/unity_base_types.hpp:10,
                 from ../turicreate/src/unity/lib/unity_global.hpp:9,
                 from model_predict.cpp:7:
../turicreate/src/util/bitops.hpp: In instantiation of ‘unsigned int turi::num_bits_on(T, typename std::enable_if<(((((((std::is_same<T, unsigned char>::value || std::is_same<T, short unsigned int>::value) || std::is_same<T, unsigned int>::value) || std::is_same<T, long unsigned int>::value) || std::is_same<T, unsigned int>::value) || std::is_same<T, long unsigned int>::value) || std::is_same<T, long long unsigned int>::value) || std::is_same<T, __int128 unsigned>::value)>::type*) [with T = long unsigned int; typename std::enable_if<(((((((std::is_same<T, unsigned char>::value || std::is_same<T, short unsigned int>::value) || std::is_same<T, unsigned int>::value) || std::is_same<T, long unsigned int>::value) || std::is_same<T, unsigned int>::value) || std::is_same<T, long unsigned int>::value) || std::is_same<T, long long unsigned int>::value) || std::is_same<T, __int128 unsigned>::value)>::type = void]’:
../turicreate/src/util/dense_bitset.hpp:177:57:   required from here
../turicreate/src/util/bitops.hpp:156:59: warning: right shift count >= width of type [-Wshift-count-overflow]
             + __builtin_popcountll((unsigned long long)(v >> 64)));
                                                           ^
../turicreate/src/util/bitops.hpp:162:10: warning: right shift count >= width of type [-Wshift-count-overflow]
       vt >>= bitsizeof(unsigned long long);
          ^
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `operator()':
/home/castl/turicreate/src/unity/server/registration.cpp:87: undefined reference to `turi::kmeans::kmeans_model::kmeans_model()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::supervised::xgboost::boosted_trees_regression::boosted_trees_regression()':
/home/castl/turicreate/src/unity/toolkits/supervised_learning/boosted_trees.hpp:21: undefined reference to `turi::supervised::xgboost::xgboost_model::xgboost_model()'
/home/castl/turicreate/src/unity/toolkits/supervised_learning/boosted_trees.hpp:21: undefined reference to `vtable for turi::supervised::xgboost::boosted_trees_regression'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::supervised::xgboost::boosted_trees_classifier::boosted_trees_classifier()':
/home/castl/turicreate/src/unity/toolkits/supervised_learning/boosted_trees.hpp:51: undefined reference to `turi::supervised::xgboost::xgboost_model::xgboost_model()'
/home/castl/turicreate/src/unity/toolkits/supervised_learning/boosted_trees.hpp:51: undefined reference to `vtable for turi::supervised::xgboost::boosted_trees_classifier'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::supervised::xgboost::random_forest_regression::random_forest_regression()':
/home/castl/turicreate/src/unity/toolkits/supervised_learning/random_forest.hpp:22: undefined reference to `turi::supervised::xgboost::xgboost_model::xgboost_model()'
/home/castl/turicreate/src/unity/toolkits/supervised_learning/random_forest.hpp:22: undefined reference to `vtable for turi::supervised::xgboost::random_forest_regression'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::supervised::xgboost::random_forest_classifier::random_forest_classifier()':
/home/castl/turicreate/src/unity/toolkits/supervised_learning/random_forest.hpp:52: undefined reference to `turi::supervised::xgboost::xgboost_model::xgboost_model()'
/home/castl/turicreate/src/unity/toolkits/supervised_learning/random_forest.hpp:52: undefined reference to `vtable for turi::supervised::xgboost::random_forest_classifier'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::supervised::xgboost::decision_tree_regression::decision_tree_regression()':
/home/castl/turicreate/src/unity/toolkits/supervised_learning/decision_tree.hpp:17: undefined reference to `turi::supervised::xgboost::xgboost_model::xgboost_model()'
/home/castl/turicreate/src/unity/toolkits/supervised_learning/decision_tree.hpp:17: undefined reference to `vtable for turi::supervised::xgboost::decision_tree_regression'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::supervised::xgboost::decision_tree_classifier::decision_tree_classifier()':
/home/castl/turicreate/src/unity/toolkits/supervised_learning/decision_tree.hpp:43: undefined reference to `turi::supervised::xgboost::xgboost_model::xgboost_model()'
/home/castl/turicreate/src/unity/toolkits/supervised_learning/decision_tree.hpp:43: undefined reference to `vtable for turi::supervised::xgboost::decision_tree_classifier'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::nearest_neighbors::brute_force_neighbors::brute_force_neighbors()':
/home/castl/turicreate/src/unity/toolkits/nearest_neighbors/brute_force_neighbors.hpp:22: undefined reference to `turi::nearest_neighbors::nearest_neighbors_model::nearest_neighbors_model()'
/home/castl/turicreate/src/unity/toolkits/nearest_neighbors/brute_force_neighbors.hpp:22: undefined reference to `vtable for turi::nearest_neighbors::brute_force_neighbors'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::nearest_neighbors::lsh_neighbors::lsh_neighbors()':
/home/castl/turicreate/src/unity/toolkits/nearest_neighbors/lsh_neighbors.hpp:40: undefined reference to `turi::nearest_neighbors::nearest_neighbors_model::nearest_neighbors_model()'
/home/castl/turicreate/src/unity/toolkits/nearest_neighbors/lsh_neighbors.hpp:40: undefined reference to `vtable for turi::nearest_neighbors::lsh_neighbors'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::simple_model::simple_model()':
/home/castl/turicreate/src/unity/lib/simple_model.hpp:27: undefined reference to `vtable for turi::simple_model'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::nearest_neighbors::ball_tree_neighbors::ball_tree_neighbors()':
/home/castl/turicreate/src/unity/toolkits/nearest_neighbors/ball_tree_neighbors.hpp:48: undefined reference to `turi::nearest_neighbors::nearest_neighbors_model::nearest_neighbors_model()'
/home/castl/turicreate/src/unity/toolkits/nearest_neighbors/ball_tree_neighbors.hpp:48: undefined reference to `vtable for turi::nearest_neighbors::ball_tree_neighbors'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::recsys::recsys_popularity::recsys_popularity()':
/home/castl/turicreate/src/unity/toolkits/recsys/models/popularity.hpp:27: undefined reference to `vtable for turi::recsys::recsys_popularity'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::text::cgs_topic_model::cgs_topic_model()':
/home/castl/turicreate/src/unity/toolkits/text/cgs.hpp:25: undefined reference to `vtable for turi::text::cgs_topic_model'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::supervised::linear_svm::linear_svm()':
/home/castl/turicreate/src/unity/toolkits/supervised_learning/linear_svm.hpp:35: undefined reference to `vtable for turi::supervised::linear_svm'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::supervised::linear_regression::linear_regression()':
/home/castl/turicreate/src/unity/toolkits/supervised_learning/linear_regression.hpp:36: undefined reference to `vtable for turi::supervised::linear_regression'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::supervised::logistic_regression::logistic_regression()':
/home/castl/turicreate/src/unity/toolkits/supervised_learning/logistic_regression.hpp:34: undefined reference to `vtable for turi::supervised::logistic_regression'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `decltype (((*this).v)({parm#1}, (*this).u)) turi::flexible_type_impl::const_visitor_wrapper<turi::flexible_type_impl::approx_equality_operator, std::vector<turi::flexible_type, std::allocator<turi::flexible_type> > >::operator()<std::vector<turi::flexible_type, std::allocator<turi::flexible_type> > const>(std::vector<turi::flexible_type, std::allocator<turi::flexible_type> > const&) const':
/home/castl/turicreate/src/flexible_type/flexible_type_detail.hpp:66: undefined reference to `turi::flexible_type_impl::approx_equality_operator::operator()(std::vector<turi::flexible_type, std::allocator<turi::flexible_type> > const&, std::vector<turi::flexible_type, std::allocator<turi::flexible_type> > const&) const'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `decltype (((*this).v)({parm#1}, (*this).u)) turi::flexible_type_impl::const_visitor_wrapper<turi::flexible_type_impl::approx_equality_operator, std::vector<std::pair<turi::flexible_type, turi::flexible_type>, std::allocator<std::pair<turi::flexible_type, turi::flexible_type> > > >::operator()<std::vector<std::pair<turi::flexible_type, turi::flexible_type>, std::allocator<std::pair<turi::flexible_type, turi::flexible_type> > > const>(std::vector<std::pair<turi::flexible_type, turi::flexible_type>, std::allocator<std::pair<turi::flexible_type, turi::flexible_type> > > const&) const':
/home/castl/turicreate/src/flexible_type/flexible_type_detail.hpp:66: undefined reference to `turi::flexible_type_impl::approx_equality_operator::operator()(std::vector<std::pair<turi::flexible_type, turi::flexible_type>, std::allocator<std::pair<turi::flexible_type, turi::flexible_type> > > const&, std::vector<std::pair<turi::flexible_type, turi::flexible_type>, std::allocator<std::pair<turi::flexible_type, turi::flexible_type> > > const&) const'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `double turi::flexible_type_impl::get_float_visitor::operator()<std::vector<double, std::allocator<double> > >(std::vector<double, std::allocator<double> >) const':
/home/castl/turicreate/src/flexible_type/flexible_type_detail.hpp:557: undefined reference to `turi::flexible_type_fail(bool)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `double turi::flexible_type_impl::get_float_visitor::operator()<std::vector<std::pair<turi::flexible_type, turi::flexible_type>, std::allocator<std::pair<turi::flexible_type, turi::flexible_type> > > >(std::vector<std::pair<turi::flexible_type, turi::flexible_type>, std::allocator<std::pair<turi::flexible_type, turi::flexible_type> > >) const':
/home/castl/turicreate/src/flexible_type/flexible_type_detail.hpp:557: undefined reference to `turi::flexible_type_fail(bool)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `double turi::flexible_type_impl::get_float_visitor::operator()<std::vector<turi::flexible_type, std::allocator<turi::flexible_type> > >(std::vector<turi::flexible_type, std::allocator<turi::flexible_type> >) const':
/home/castl/turicreate/src/flexible_type/flexible_type_detail.hpp:557: undefined reference to `turi::flexible_type_fail(bool)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `double turi::flexible_type_impl::get_float_visitor::operator()<turi::flexible_type_impl::ndarray<double> >(turi::flexible_type_impl::ndarray<double>) const':
/home/castl/turicreate/src/flexible_type/flexible_type_detail.hpp:557: undefined reference to `turi::flexible_type_fail(bool)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `double turi::flexible_type_impl::get_float_visitor::operator()<turi::image_type>(turi::image_type) const':
/home/castl/turicreate/src/flexible_type/flexible_type_detail.hpp:557: undefined reference to `turi::flexible_type_fail(bool)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):/home/castl/turicreate/src/flexible_type/flexible_type_detail.hpp:557: more undefined references to `turi::flexible_type_fail(bool)' follow
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::recsys::recsys_factorization_model_base::recsys_factorization_model_base()':
/home/castl/turicreate/src/unity/toolkits/recsys/models/factorization_models.hpp:26: undefined reference to `vtable for turi::recsys::recsys_factorization_model_base'
/home/castl/turicreate/src/unity/toolkits/recsys/models/factorization_models.hpp:26: undefined reference to `vtable for turi::recsys::recsys_factorization_model_base'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::recsys::recsys_itemcf::recsys_itemcf()':
/home/castl/turicreate/src/unity/toolkits/recsys/models/itemcf.hpp:95: undefined reference to `vtable for turi::recsys::recsys_itemcf'
/home/castl/turicreate/src/unity/toolkits/recsys/models/itemcf.hpp:95: undefined reference to `vtable for turi::recsys::recsys_itemcf'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::text::alias_topic_model::alias_topic_model()':
/home/castl/turicreate/src/unity/toolkits/text/alias.hpp:67: undefined reference to `vtable for turi::text::alias_topic_model'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::variant_converter<std::function<double (std::vector<double, std::allocator<double> >, std::vector<double, std::allocator<double> >)>, void>::get(boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > const&)':
/home/castl/turicreate/src/unity/lib/variant_converter.hpp:526: undefined reference to `turi::variant_converter_impl::get_toolkit_function_from_closure[abi:cxx11](turi::function_closure_info const&)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::distances::apply(turi::gl_sarray, turi::gl_sarray, turi::function_closure_info)':
/home/castl/turicreate/src/unity/toolkits/nearest_neighbors/distances.hpp:253: undefined reference to `turi::gl_sarray::dtype() const'
/home/castl/turicreate/src/unity/toolkits/nearest_neighbors/distances.hpp:253: undefined reference to `turi::gl_sarray::dtype() const'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::variant_converter<std::function<double (turi::flexible_type, turi::flexible_type)>, void>::get(boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > const&)':
/home/castl/turicreate/src/unity/lib/variant_converter.hpp:526: undefined reference to `turi::variant_converter_impl::get_toolkit_function_from_closure[abi:cxx11](turi::function_closure_info const&)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::distances::apply(turi::gl_sarray, turi::gl_sarray, turi::function_closure_info)':
/home/castl/turicreate/src/unity/toolkits/nearest_neighbors/distances.hpp:258: undefined reference to `turi::gl_sarray_writer::gl_sarray_writer(turi::flex_type_enum, unsigned long)'
/home/castl/turicreate/src/unity/toolkits/nearest_neighbors/distances.hpp:259: undefined reference to `turi::gl_sarray::range_iterator(unsigned long, unsigned long) const'
/home/castl/turicreate/src/unity/toolkits/nearest_neighbors/distances.hpp:260: undefined reference to `turi::gl_sarray::range_iterator(unsigned long, unsigned long) const'
/home/castl/turicreate/src/unity/toolkits/nearest_neighbors/distances.hpp:261: undefined reference to `turi::gl_sarray_range::begin()'
/home/castl/turicreate/src/unity/toolkits/nearest_neighbors/distances.hpp:261: undefined reference to `turi::gl_sarray_range::begin()'
/home/castl/turicreate/src/unity/toolkits/nearest_neighbors/distances.hpp:261: undefined reference to `turi::gl_sarray_range::end()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::gl_sarray_range::iterator::reference boost::iterators::iterator_core_access::dereference<turi::gl_sarray_range::iterator>(turi::gl_sarray_range::iterator const&)':
/home/castl/turicreate/deps/local/include/boost/iterator/iterator_facade.hpp:549: undefined reference to `turi::gl_sarray_range::iterator::dereference() const'
/home/castl/turicreate/deps/local/include/boost/iterator/iterator_facade.hpp:549: undefined reference to `turi::gl_sarray_range::iterator::dereference() const'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::distances::apply(turi::gl_sarray, turi::gl_sarray, turi::function_closure_info)':
/home/castl/turicreate/src/unity/toolkits/nearest_neighbors/distances.hpp:262: undefined reference to `turi::gl_sarray_writer::write(turi::flexible_type const&, unsigned long)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `void boost::iterators::iterator_core_access::increment<turi::gl_sarray_range::iterator>(turi::gl_sarray_range::iterator&)':
/home/castl/turicreate/deps/local/include/boost/iterator/iterator_facade.hpp:555: undefined reference to `turi::gl_sarray_range::iterator::increment()'
/home/castl/turicreate/deps/local/include/boost/iterator/iterator_facade.hpp:555: undefined reference to `turi::gl_sarray_range::iterator::increment()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::distances::apply(turi::gl_sarray, turi::gl_sarray, turi::function_closure_info)':
/home/castl/turicreate/src/unity/toolkits/nearest_neighbors/distances.hpp:264: undefined reference to `turi::gl_sarray_writer::close()'
/home/castl/turicreate/src/unity/toolkits/nearest_neighbors/distances.hpp:258: undefined reference to `turi::gl_sarray_writer::~gl_sarray_writer()'
/home/castl/turicreate/src/unity/toolkits/nearest_neighbors/distances.hpp:258: undefined reference to `turi::gl_sarray_writer::~gl_sarray_writer()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::register_functions(turi::toolkit_function_registry&)':
/home/castl/turicreate/src/unity/server/registration.cpp:53: undefined reference to `turi::image_util::get_toolkit_function_registration()'
/home/castl/turicreate/src/unity/server/registration.cpp:53: undefined reference to `turi::toolkit_function_registry::register_toolkit_function(std::vector<turi::toolkit_function_specification, std::allocator<turi::toolkit_function_specification> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
/home/castl/turicreate/src/unity/server/registration.cpp:54: undefined reference to `turi::visualization::get_toolkit_function_registration()'
/home/castl/turicreate/src/unity/server/registration.cpp:54: undefined reference to `turi::toolkit_function_registry::register_toolkit_function(std::vector<turi::toolkit_function_specification, std::allocator<turi::toolkit_function_specification> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
/home/castl/turicreate/src/unity/server/registration.cpp:57: undefined reference to `turi::kmeans::get_toolkit_function_registration()'
/home/castl/turicreate/src/unity/server/registration.cpp:57: undefined reference to `turi::toolkit_function_registry::register_toolkit_function(std::vector<turi::toolkit_function_specification, std::allocator<turi::toolkit_function_specification> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
/home/castl/turicreate/src/unity/server/registration.cpp:59: undefined reference to `turi::pagerank::get_toolkit_function_registration()'
/home/castl/turicreate/src/unity/server/registration.cpp:59: undefined reference to `turi::toolkit_function_registry::register_toolkit_function(std::vector<turi::toolkit_function_specification, std::allocator<turi::toolkit_function_specification> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
/home/castl/turicreate/src/unity/server/registration.cpp:60: undefined reference to `turi::kcore::get_toolkit_function_registration()'
/home/castl/turicreate/src/unity/server/registration.cpp:60: undefined reference to `turi::toolkit_function_registry::register_toolkit_function(std::vector<turi::toolkit_function_specification, std::allocator<turi::toolkit_function_specification> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
/home/castl/turicreate/src/unity/server/registration.cpp:61: undefined reference to `turi::connected_component::get_toolkit_function_registration()'
/home/castl/turicreate/src/unity/server/registration.cpp:61: undefined reference to `turi::toolkit_function_registry::register_toolkit_function(std::vector<turi::toolkit_function_specification, std::allocator<turi::toolkit_function_specification> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
/home/castl/turicreate/src/unity/server/registration.cpp:62: undefined reference to `turi::graph_coloring::get_toolkit_function_registration()'
/home/castl/turicreate/src/unity/server/registration.cpp:62: undefined reference to `turi::toolkit_function_registry::register_toolkit_function(std::vector<turi::toolkit_function_specification, std::allocator<turi::toolkit_function_specification> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
/home/castl/turicreate/src/unity/server/registration.cpp:63: undefined reference to `turi::triangle_counting::get_toolkit_function_registration()'
/home/castl/turicreate/src/unity/server/registration.cpp:63: undefined reference to `turi::toolkit_function_registry::register_toolkit_function(std::vector<turi::toolkit_function_specification, std::allocator<turi::toolkit_function_specification> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
/home/castl/turicreate/src/unity/server/registration.cpp:64: undefined reference to `turi::sssp::get_toolkit_function_registration()'
/home/castl/turicreate/src/unity/server/registration.cpp:64: undefined reference to `turi::toolkit_function_registry::register_toolkit_function(std::vector<turi::toolkit_function_specification, std::allocator<turi::toolkit_function_specification> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
/home/castl/turicreate/src/unity/server/registration.cpp:65: undefined reference to `turi::degree_count::get_toolkit_function_registration()'
/home/castl/turicreate/src/unity/server/registration.cpp:65: undefined reference to `turi::toolkit_function_registry::register_toolkit_function(std::vector<turi::toolkit_function_specification, std::allocator<turi::toolkit_function_specification> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
/home/castl/turicreate/src/unity/server/registration.cpp:66: undefined reference to `turi::label_propagation::get_toolkit_function_registration()'
/home/castl/turicreate/src/unity/server/registration.cpp:66: undefined reference to `turi::toolkit_function_registry::register_toolkit_function(std::vector<turi::toolkit_function_specification, std::allocator<turi::toolkit_function_specification> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
/home/castl/turicreate/src/unity/server/registration.cpp:68: undefined reference to `turi::text::get_toolkit_function_registration()'
/home/castl/turicreate/src/unity/server/registration.cpp:68: undefined reference to `turi::toolkit_function_registry::register_toolkit_function(std::vector<turi::toolkit_function_specification, std::allocator<turi::toolkit_function_specification> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
/home/castl/turicreate/src/unity/server/registration.cpp:69: undefined reference to `turi::evaluation::get_toolkit_function_registration()'
/home/castl/turicreate/src/unity/server/registration.cpp:69: undefined reference to `turi::toolkit_function_registry::register_toolkit_function(std::vector<turi::toolkit_function_specification, std::allocator<turi::toolkit_function_specification> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
/home/castl/turicreate/src/unity/server/registration.cpp:70: undefined reference to `turi::recsys::get_toolkit_function_registration()'
/home/castl/turicreate/src/unity/server/registration.cpp:70: undefined reference to `turi::toolkit_function_registry::register_toolkit_function(std::vector<turi::toolkit_function_specification, std::allocator<turi::toolkit_function_specification> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
/home/castl/turicreate/src/unity/server/registration.cpp:71: undefined reference to `turi::supervised::get_toolkit_function_registration()'
/home/castl/turicreate/src/unity/server/registration.cpp:71: undefined reference to `turi::toolkit_function_registry::register_toolkit_function(std::vector<turi::toolkit_function_specification, std::allocator<turi::toolkit_function_specification> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
/home/castl/turicreate/src/unity/server/registration.cpp:72: undefined reference to `turi::nearest_neighbors::get_toolkit_function_registration()'
/home/castl/turicreate/src/unity/server/registration.cpp:72: undefined reference to `turi::toolkit_function_registry::register_toolkit_function(std::vector<turi::toolkit_function_specification, std::allocator<turi::toolkit_function_specification> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
/home/castl/turicreate/src/unity/server/registration.cpp:73: undefined reference to `turi::toolkit_function_registry::register_toolkit_function(std::vector<turi::toolkit_function_specification, std::allocator<turi::toolkit_function_specification> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
/home/castl/turicreate/src/unity/server/registration.cpp:74: undefined reference to `turi::image_util::get_toolkit_function_registration()'
/home/castl/turicreate/src/unity/server/registration.cpp:74: undefined reference to `turi::toolkit_function_registry::register_toolkit_function(std::vector<turi::toolkit_function_specification, std::allocator<turi::toolkit_function_specification> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
/home/castl/turicreate/src/unity/server/registration.cpp:75: undefined reference to `turi::ml_model_sdk::get_toolkit_function_registration()'
/home/castl/turicreate/src/unity/server/registration.cpp:75: undefined reference to `turi::toolkit_function_registry::register_toolkit_function(std::vector<turi::toolkit_function_specification, std::allocator<turi::toolkit_function_specification> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
/home/castl/turicreate/src/unity/server/registration.cpp:76: undefined reference to `turi::sdk_model::get_toolkit_function_registration()'
/home/castl/turicreate/src/unity/server/registration.cpp:76: undefined reference to `turi::toolkit_function_registry::register_toolkit_function(std::vector<turi::toolkit_function_specification, std::allocator<turi::toolkit_function_specification> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
/home/castl/turicreate/src/unity/server/registration.cpp:77: undefined reference to `turi::pattern_mining::get_toolkit_function_registration()'
/home/castl/turicreate/src/unity/server/registration.cpp:77: undefined reference to `turi::toolkit_function_registry::register_toolkit_function(std::vector<turi::toolkit_function_specification, std::allocator<turi::toolkit_function_specification> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
/home/castl/turicreate/src/unity/server/registration.cpp:78: undefined reference to `turi::sdk_model::activity_classification::get_toolkit_function_registration()'
/home/castl/turicreate/src/unity/server/registration.cpp:78: undefined reference to `turi::toolkit_function_registry::register_toolkit_function(std::vector<turi::toolkit_function_specification, std::allocator<turi::toolkit_function_specification> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::register_models(turi::toolkit_class_registry&)':
/home/castl/turicreate/src/unity/server/registration.cpp:94: undefined reference to `turi::python_model::get_toolkit_class_registration()'
/home/castl/turicreate/src/unity/server/registration.cpp:94: undefined reference to `turi::toolkit_class_registry::register_toolkit_class(std::vector<turi::toolkit_class_specification, std::allocator<turi::toolkit_class_specification> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::simple_model::simple_model()':
/home/castl/turicreate/src/unity/lib/simple_model.hpp:27: undefined reference to `vtable for turi::simple_model'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `register_model_helper<turi::simple_model>':
/home/castl/turicreate/src/unity/server/registration.cpp:87: undefined reference to `turi::toolkit_class_registry::register_toolkit_class(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<turi::model_base* ()>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, turi::flexible_type, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, turi::flexible_type> > >)'
/home/castl/turicreate/src/unity/server/registration.cpp:85: undefined reference to `turi::simple_model::~simple_model()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::recsys::recsys_popularity::recsys_popularity()':
/home/castl/turicreate/src/unity/toolkits/recsys/models/popularity.hpp:27: undefined reference to `vtable for turi::recsys::recsys_popularity'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `register_model_helper<turi::recsys::recsys_popularity>':
/home/castl/turicreate/src/unity/server/registration.cpp:87: undefined reference to `turi::toolkit_class_registry::register_toolkit_class(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<turi::model_base* ()>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, turi::flexible_type, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, turi::flexible_type> > >)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `register_model_helper<turi::recsys::recsys_itemcf>':
/home/castl/turicreate/src/unity/server/registration.cpp:87: undefined reference to `turi::toolkit_class_registry::register_toolkit_class(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<turi::model_base* ()>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, turi::flexible_type, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, turi::flexible_type> > >)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `register_model_helper<turi::recsys::recsys_item_content_recommender>':
/home/castl/turicreate/src/unity/server/registration.cpp:87: undefined reference to `turi::toolkit_class_registry::register_toolkit_class(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<turi::model_base* ()>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, turi::flexible_type, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, turi::flexible_type> > >)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::recsys::recsys_factorization_model_base::recsys_factorization_model_base()':
/home/castl/turicreate/src/unity/toolkits/recsys/models/factorization_models.hpp:26: undefined reference to `vtable for turi::recsys::recsys_factorization_model_base'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `register_model_helper<turi::recsys::recsys_factorization_model>':
/home/castl/turicreate/src/unity/server/registration.cpp:87: undefined reference to `turi::toolkit_class_registry::register_toolkit_class(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<turi::model_base* ()>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, turi::flexible_type, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, turi::flexible_type> > >)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `register_model_helper<turi::recsys::recsys_ranking_factorization_model>':
/home/castl/turicreate/src/unity/server/registration.cpp:87: undefined reference to `turi::toolkit_class_registry::register_toolkit_class(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<turi::model_base* ()>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, turi::flexible_type, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, turi::flexible_type> > >)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::supervised::linear_regression::linear_regression()':
/home/castl/turicreate/src/unity/toolkits/supervised_learning/linear_regression.hpp:36: undefined reference to `vtable for turi::supervised::linear_regression'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `register_model_helper<turi::supervised::linear_regression>':
/home/castl/turicreate/src/unity/server/registration.cpp:86: undefined reference to `turi::supervised::linear_regression::name[abi:cxx11]()'
/home/castl/turicreate/src/unity/server/registration.cpp:87: undefined reference to `turi::toolkit_class_registry::register_toolkit_class(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<turi::model_base* ()>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, turi::flexible_type, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, turi::flexible_type> > >)'
/home/castl/turicreate/src/unity/server/registration.cpp:85: undefined reference to `turi::supervised::linear_regression::~linear_regression()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::supervised::logistic_regression::logistic_regression()':
/home/castl/turicreate/src/unity/toolkits/supervised_learning/logistic_regression.hpp:34: undefined reference to `vtable for turi::supervised::logistic_regression'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `register_model_helper<turi::supervised::logistic_regression>':
/home/castl/turicreate/src/unity/server/registration.cpp:86: undefined reference to `turi::supervised::logistic_regression::name[abi:cxx11]()'
/home/castl/turicreate/src/unity/server/registration.cpp:87: undefined reference to `turi::toolkit_class_registry::register_toolkit_class(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<turi::model_base* ()>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, turi::flexible_type, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, turi::flexible_type> > >)'
/home/castl/turicreate/src/unity/server/registration.cpp:85: undefined reference to `turi::supervised::logistic_regression::~logistic_regression()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::supervised::linear_svm::linear_svm()':
/home/castl/turicreate/src/unity/toolkits/supervised_learning/linear_svm.hpp:35: undefined reference to `vtable for turi::supervised::linear_svm'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `register_model_helper<turi::supervised::linear_svm>':
/home/castl/turicreate/src/unity/server/registration.cpp:86: undefined reference to `turi::supervised::linear_svm::name[abi:cxx11]()'
/home/castl/turicreate/src/unity/server/registration.cpp:87: undefined reference to `turi::toolkit_class_registry::register_toolkit_class(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<turi::model_base* ()>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, turi::flexible_type, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, turi::flexible_type> > >)'
/home/castl/turicreate/src/unity/server/registration.cpp:85: undefined reference to `turi::supervised::linear_svm::~linear_svm()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::supervised::xgboost::boosted_trees_regression::boosted_trees_regression()':
/home/castl/turicreate/src/unity/toolkits/supervised_learning/boosted_trees.hpp:21: undefined reference to `turi::supervised::xgboost::xgboost_model::xgboost_model()'
/home/castl/turicreate/src/unity/toolkits/supervised_learning/boosted_trees.hpp:21: undefined reference to `vtable for turi::supervised::xgboost::boosted_trees_regression'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `register_model_helper<turi::supervised::xgboost::boosted_trees_regression>':
/home/castl/turicreate/src/unity/server/registration.cpp:86: undefined reference to `turi::supervised::xgboost::boosted_trees_regression::name[abi:cxx11]()'
/home/castl/turicreate/src/unity/server/registration.cpp:87: undefined reference to `turi::toolkit_class_registry::register_toolkit_class(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<turi::model_base* ()>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, turi::flexible_type, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, turi::flexible_type> > >)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::supervised::xgboost::boosted_trees_classifier::boosted_trees_classifier()':
/home/castl/turicreate/src/unity/toolkits/supervised_learning/boosted_trees.hpp:51: undefined reference to `turi::supervised::xgboost::xgboost_model::xgboost_model()'
/home/castl/turicreate/src/unity/toolkits/supervised_learning/boosted_trees.hpp:51: undefined reference to `vtable for turi::supervised::xgboost::boosted_trees_classifier'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `register_model_helper<turi::supervised::xgboost::boosted_trees_classifier>':
/home/castl/turicreate/src/unity/server/registration.cpp:86: undefined reference to `turi::supervised::xgboost::boosted_trees_classifier::name[abi:cxx11]()'
/home/castl/turicreate/src/unity/server/registration.cpp:87: undefined reference to `turi::toolkit_class_registry::register_toolkit_class(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<turi::model_base* ()>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, turi::flexible_type, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, turi::flexible_type> > >)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::supervised::xgboost::random_forest_regression::random_forest_regression()':
/home/castl/turicreate/src/unity/toolkits/supervised_learning/random_forest.hpp:22: undefined reference to `turi::supervised::xgboost::xgboost_model::xgboost_model()'
/home/castl/turicreate/src/unity/toolkits/supervised_learning/random_forest.hpp:22: undefined reference to `vtable for turi::supervised::xgboost::random_forest_regression'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `register_model_helper<turi::supervised::xgboost::random_forest_regression>':
/home/castl/turicreate/src/unity/server/registration.cpp:86: undefined reference to `turi::supervised::xgboost::random_forest_regression::name[abi:cxx11]()'
/home/castl/turicreate/src/unity/server/registration.cpp:87: undefined reference to `turi::toolkit_class_registry::register_toolkit_class(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<turi::model_base* ()>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, turi::flexible_type, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, turi::flexible_type> > >)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::supervised::xgboost::random_forest_classifier::random_forest_classifier()':
/home/castl/turicreate/src/unity/toolkits/supervised_learning/random_forest.hpp:52: undefined reference to `turi::supervised::xgboost::xgboost_model::xgboost_model()'
/home/castl/turicreate/src/unity/toolkits/supervised_learning/random_forest.hpp:52: undefined reference to `vtable for turi::supervised::xgboost::random_forest_classifier'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `register_model_helper<turi::supervised::xgboost::random_forest_classifier>':
/home/castl/turicreate/src/unity/server/registration.cpp:86: undefined reference to `turi::supervised::xgboost::random_forest_classifier::name[abi:cxx11]()'
/home/castl/turicreate/src/unity/server/registration.cpp:87: undefined reference to `turi::toolkit_class_registry::register_toolkit_class(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<turi::model_base* ()>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, turi::flexible_type, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, turi::flexible_type> > >)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::supervised::xgboost::decision_tree_regression::decision_tree_regression()':
/home/castl/turicreate/src/unity/toolkits/supervised_learning/decision_tree.hpp:17: undefined reference to `turi::supervised::xgboost::xgboost_model::xgboost_model()'
/home/castl/turicreate/src/unity/toolkits/supervised_learning/decision_tree.hpp:17: undefined reference to `vtable for turi::supervised::xgboost::decision_tree_regression'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `register_model_helper<turi::supervised::xgboost::decision_tree_regression>':
/home/castl/turicreate/src/unity/server/registration.cpp:86: undefined reference to `turi::supervised::xgboost::decision_tree_regression::name[abi:cxx11]()'
/home/castl/turicreate/src/unity/server/registration.cpp:87: undefined reference to `turi::toolkit_class_registry::register_toolkit_class(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<turi::model_base* ()>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, turi::flexible_type, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, turi::flexible_type> > >)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::supervised::xgboost::decision_tree_classifier::decision_tree_classifier()':
/home/castl/turicreate/src/unity/toolkits/supervised_learning/decision_tree.hpp:43: undefined reference to `turi::supervised::xgboost::xgboost_model::xgboost_model()'
/home/castl/turicreate/src/unity/toolkits/supervised_learning/decision_tree.hpp:43: undefined reference to `vtable for turi::supervised::xgboost::decision_tree_classifier'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `register_model_helper<turi::supervised::xgboost::decision_tree_classifier>':
/home/castl/turicreate/src/unity/server/registration.cpp:86: undefined reference to `turi::supervised::xgboost::decision_tree_classifier::name[abi:cxx11]()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::simple_model::simple_model()':
/home/castl/turicreate/src/unity/lib/simple_model.hpp:27: undefined reference to `vtable for turi::simple_model'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `register_model_helper<turi::simple_model>':
/home/castl/turicreate/src/unity/server/registration.cpp:87: undefined reference to `turi::toolkit_class_registry::register_toolkit_class(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<turi::model_base* ()>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, turi::flexible_type, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, turi::flexible_type> > >)'
/home/castl/turicreate/src/unity/server/registration.cpp:85: undefined reference to `turi::simple_model::~simple_model()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::recsys::recsys_popularity::recsys_popularity()':
/home/castl/turicreate/src/unity/toolkits/recsys/models/popularity.hpp:27: undefined reference to `vtable for turi::recsys::recsys_popularity'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `register_model_helper<turi::recsys::recsys_popularity>':
/home/castl/turicreate/src/unity/server/registration.cpp:87: undefined reference to `turi::toolkit_class_registry::register_toolkit_class(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<turi::model_base* ()>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, turi::flexible_type, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, turi::flexible_type> > >)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `register_model_helper<turi::recsys::recsys_itemcf>':
/home/castl/turicreate/src/unity/server/registration.cpp:87: undefined reference to `turi::toolkit_class_registry::register_toolkit_class(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<turi::model_base* ()>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, turi::flexible_type, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, turi::flexible_type> > >)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `register_model_helper<turi::recsys::recsys_item_content_recommender>':
/home/castl/turicreate/src/unity/server/registration.cpp:87: undefined reference to `turi::toolkit_class_registry::register_toolkit_class(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<turi::model_base* ()>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, turi::flexible_type, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, turi::flexible_type> > >)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::recsys::recsys_factorization_model_base::recsys_factorization_model_base()':
/home/castl/turicreate/src/unity/toolkits/recsys/models/factorization_models.hpp:26: undefined reference to `vtable for turi::recsys::recsys_factorization_model_base'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `register_model_helper<turi::recsys::recsys_factorization_model>':
/home/castl/turicreate/src/unity/server/registration.cpp:87: undefined reference to `turi::toolkit_class_registry::register_toolkit_class(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<turi::model_base* ()>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, turi::flexible_type, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, turi::flexible_type> > >)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `register_model_helper<turi::recsys::recsys_ranking_factorization_model>':
/home/castl/turicreate/src/unity/server/registration.cpp:87: undefined reference to `turi::toolkit_class_registry::register_toolkit_class(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<turi::model_base* ()>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, turi::flexible_type, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, turi::flexible_type> > >)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::supervised::linear_regression::linear_regression()':
/home/castl/turicreate/src/unity/toolkits/supervised_learning/linear_regression.hpp:36: undefined reference to `vtable for turi::supervised::linear_regression'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `register_model_helper<turi::supervised::linear_regression>':
/home/castl/turicreate/src/unity/server/registration.cpp:86: undefined reference to `turi::supervised::linear_regression::name[abi:cxx11]()'
/home/castl/turicreate/src/unity/server/registration.cpp:87: undefined reference to `turi::toolkit_class_registry::register_toolkit_class(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<turi::model_base* ()>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, turi::flexible_type, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, turi::flexible_type> > >)'
/home/castl/turicreate/src/unity/server/registration.cpp:85: undefined reference to `turi::supervised::linear_regression::~linear_regression()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::supervised::logistic_regression::logistic_regression()':
/home/castl/turicreate/src/unity/toolkits/supervised_learning/logistic_regression.hpp:34: undefined reference to `vtable for turi::supervised::logistic_regression'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `register_model_helper<turi::supervised::logistic_regression>':
/home/castl/turicreate/src/unity/server/registration.cpp:86: undefined reference to `turi::supervised::logistic_regression::name[abi:cxx11]()'
/home/castl/turicreate/src/unity/server/registration.cpp:87: undefined reference to `turi::toolkit_class_registry::register_toolkit_class(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<turi::model_base* ()>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, turi::flexible_type, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, turi::flexible_type> > >)'
/home/castl/turicreate/src/unity/server/registration.cpp:85: undefined reference to `turi::supervised::logistic_regression::~logistic_regression()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::supervised::linear_svm::linear_svm()':
/home/castl/turicreate/src/unity/toolkits/supervised_learning/linear_svm.hpp:35: undefined reference to `vtable for turi::supervised::linear_svm'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `register_model_helper<turi::supervised::linear_svm>':
/home/castl/turicreate/src/unity/server/registration.cpp:86: undefined reference to `turi::supervised::linear_svm::name[abi:cxx11]()'
/home/castl/turicreate/src/unity/server/registration.cpp:87: undefined reference to `turi::toolkit_class_registry::register_toolkit_class(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<turi::model_base* ()>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, turi::flexible_type, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, turi::flexible_type> > >)'
/home/castl/turicreate/src/unity/server/registration.cpp:85: undefined reference to `turi::supervised::linear_svm::~linear_svm()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::supervised::xgboost::boosted_trees_regression::boosted_trees_regression()':
/home/castl/turicreate/src/unity/toolkits/supervised_learning/boosted_trees.hpp:21: undefined reference to `turi::supervised::xgboost::xgboost_model::xgboost_model()'
/home/castl/turicreate/src/unity/toolkits/supervised_learning/boosted_trees.hpp:21: undefined reference to `vtable for turi::supervised::xgboost::boosted_trees_regression'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `register_model_helper<turi::supervised::xgboost::boosted_trees_regression>':
/home/castl/turicreate/src/unity/server/registration.cpp:86: undefined reference to `turi::supervised::xgboost::boosted_trees_regression::name[abi:cxx11]()'
/home/castl/turicreate/src/unity/server/registration.cpp:87: undefined reference to `turi::toolkit_class_registry::register_toolkit_class(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<turi::model_base* ()>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, turi::flexible_type, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, turi::flexible_type> > >)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::supervised::xgboost::boosted_trees_classifier::boosted_trees_classifier()':
/home/castl/turicreate/src/unity/toolkits/supervised_learning/boosted_trees.hpp:51: undefined reference to `turi::supervised::xgboost::xgboost_model::xgboost_model()'
/home/castl/turicreate/src/unity/toolkits/supervised_learning/boosted_trees.hpp:51: undefined reference to `vtable for turi::supervised::xgboost::boosted_trees_classifier'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `register_model_helper<turi::supervised::xgboost::boosted_trees_classifier>':
/home/castl/turicreate/src/unity/server/registration.cpp:86: undefined reference to `turi::supervised::xgboost::boosted_trees_classifier::name[abi:cxx11]()'
/home/castl/turicreate/src/unity/server/registration.cpp:87: undefined reference to `turi::toolkit_class_registry::register_toolkit_class(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<turi::model_base* ()>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, turi::flexible_type, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, turi::flexible_type> > >)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::supervised::xgboost::random_forest_regression::random_forest_regression()':
/home/castl/turicreate/src/unity/toolkits/supervised_learning/random_forest.hpp:22: undefined reference to `turi::supervised::xgboost::xgboost_model::xgboost_model()'
/home/castl/turicreate/src/unity/toolkits/supervised_learning/random_forest.hpp:22: undefined reference to `vtable for turi::supervised::xgboost::random_forest_regression'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `register_model_helper<turi::supervised::xgboost::random_forest_regression>':
/home/castl/turicreate/src/unity/server/registration.cpp:86: undefined reference to `turi::supervised::xgboost::random_forest_regression::name[abi:cxx11]()'
/home/castl/turicreate/src/unity/server/registration.cpp:87: undefined reference to `turi::toolkit_class_registry::register_toolkit_class(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<turi::model_base* ()>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, turi::flexible_type, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, turi::flexible_type> > >)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::supervised::xgboost::random_forest_classifier::random_forest_classifier()':
/home/castl/turicreate/src/unity/toolkits/supervised_learning/random_forest.hpp:52: undefined reference to `turi::supervised::xgboost::xgboost_model::xgboost_model()'
/home/castl/turicreate/src/unity/toolkits/supervised_learning/random_forest.hpp:52: undefined reference to `vtable for turi::supervised::xgboost::random_forest_classifier'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `register_model_helper<turi::supervised::xgboost::random_forest_classifier>':
/home/castl/turicreate/src/unity/server/registration.cpp:86: undefined reference to `turi::supervised::xgboost::random_forest_classifier::name[abi:cxx11]()'
/home/castl/turicreate/src/unity/server/registration.cpp:87: undefined reference to `turi::toolkit_class_registry::register_toolkit_class(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<turi::model_base* ()>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, turi::flexible_type, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, turi::flexible_type> > >)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::supervised::xgboost::decision_tree_regression::decision_tree_regression()':
/home/castl/turicreate/src/unity/toolkits/supervised_learning/decision_tree.hpp:17: undefined reference to `turi::supervised::xgboost::xgboost_model::xgboost_model()'
/home/castl/turicreate/src/unity/toolkits/supervised_learning/decision_tree.hpp:17: undefined reference to `vtable for turi::supervised::xgboost::decision_tree_regression'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `register_model_helper<turi::supervised::xgboost::decision_tree_regression>':
/home/castl/turicreate/src/unity/server/registration.cpp:86: undefined reference to `turi::supervised::xgboost::decision_tree_regression::name[abi:cxx11]()'
/home/castl/turicreate/src/unity/server/registration.cpp:87: undefined reference to `turi::toolkit_class_registry::register_toolkit_class(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<turi::model_base* ()>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, turi::flexible_type, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, turi::flexible_type> > >)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::supervised::xgboost::decision_tree_classifier::decision_tree_classifier()':
/home/castl/turicreate/src/unity/toolkits/supervised_learning/decision_tree.hpp:43: undefined reference to `turi::supervised::xgboost::xgboost_model::xgboost_model()'
/home/castl/turicreate/src/unity/toolkits/supervised_learning/decision_tree.hpp:43: undefined reference to `vtable for turi::supervised::xgboost::decision_tree_classifier'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `register_model_helper<turi::supervised::xgboost::decision_tree_classifier>':
/home/castl/turicreate/src/unity/server/registration.cpp:86: undefined reference to `turi::supervised::xgboost::decision_tree_classifier::name[abi:cxx11]()'
/home/castl/turicreate/src/unity/server/registration.cpp:87: undefined reference to `turi::toolkit_class_registry::register_toolkit_class(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<turi::model_base* ()>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, turi::flexible_type, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, turi::flexible_type> > >)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::nearest_neighbors::brute_force_neighbors::brute_force_neighbors()':
/home/castl/turicreate/src/unity/toolkits/nearest_neighbors/brute_force_neighbors.hpp:22: undefined reference to `turi::nearest_neighbors::nearest_neighbors_model::nearest_neighbors_model()'
/home/castl/turicreate/src/unity/toolkits/nearest_neighbors/brute_force_neighbors.hpp:22: undefined reference to `vtable for turi::nearest_neighbors::brute_force_neighbors'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `register_model_helper<turi::nearest_neighbors::brute_force_neighbors>':
/home/castl/turicreate/src/unity/server/registration.cpp:86: undefined reference to `turi::nearest_neighbors::brute_force_neighbors::name[abi:cxx11]()'
/home/castl/turicreate/src/unity/server/registration.cpp:87: undefined reference to `turi::toolkit_class_registry::register_toolkit_class(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<turi::model_base* ()>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, turi::flexible_type, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, turi::flexible_type> > >)'
/home/castl/turicreate/src/unity/server/registration.cpp:85: undefined reference to `turi::nearest_neighbors::brute_force_neighbors::~brute_force_neighbors()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::nearest_neighbors::ball_tree_neighbors::ball_tree_neighbors()':
/home/castl/turicreate/src/unity/toolkits/nearest_neighbors/ball_tree_neighbors.hpp:48: undefined reference to `turi::nearest_neighbors::nearest_neighbors_model::nearest_neighbors_model()'
/home/castl/turicreate/src/unity/toolkits/nearest_neighbors/ball_tree_neighbors.hpp:48: undefined reference to `vtable for turi::nearest_neighbors::ball_tree_neighbors'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `register_model_helper<turi::nearest_neighbors::ball_tree_neighbors>':
/home/castl/turicreate/src/unity/server/registration.cpp:86: undefined reference to `turi::nearest_neighbors::ball_tree_neighbors::name[abi:cxx11]()'
/home/castl/turicreate/src/unity/server/registration.cpp:87: undefined reference to `turi::toolkit_class_registry::register_toolkit_class(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<turi::model_base* ()>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, turi::flexible_type, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, turi::flexible_type> > >)'
/home/castl/turicreate/src/unity/server/registration.cpp:85: undefined reference to `turi::nearest_neighbors::ball_tree_neighbors::~ball_tree_neighbors()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::nearest_neighbors::lsh_neighbors::lsh_neighbors()':
/home/castl/turicreate/src/unity/toolkits/nearest_neighbors/lsh_neighbors.hpp:40: undefined reference to `turi::nearest_neighbors::nearest_neighbors_model::nearest_neighbors_model()'
/home/castl/turicreate/src/unity/toolkits/nearest_neighbors/lsh_neighbors.hpp:40: undefined reference to `vtable for turi::nearest_neighbors::lsh_neighbors'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `register_model_helper<turi::nearest_neighbors::lsh_neighbors>':
/home/castl/turicreate/src/unity/server/registration.cpp:86: undefined reference to `turi::nearest_neighbors::lsh_neighbors::name[abi:cxx11]()'
/home/castl/turicreate/src/unity/server/registration.cpp:87: undefined reference to `turi::toolkit_class_registry::register_toolkit_class(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<turi::model_base* ()>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, turi::flexible_type, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, turi::flexible_type> > >)'
/home/castl/turicreate/src/unity/server/registration.cpp:85: undefined reference to `turi::nearest_neighbors::lsh_neighbors::~lsh_neighbors()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::text::cgs_topic_model::cgs_topic_model()':
/home/castl/turicreate/src/unity/toolkits/text/cgs.hpp:25: undefined reference to `vtable for turi::text::cgs_topic_model'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `register_model_helper<turi::text::cgs_topic_model>':
/home/castl/turicreate/src/unity/server/registration.cpp:86: undefined reference to `turi::text::cgs_topic_model::name[abi:cxx11]()'
/home/castl/turicreate/src/unity/server/registration.cpp:87: undefined reference to `turi::toolkit_class_registry::register_toolkit_class(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<turi::model_base* ()>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, turi::flexible_type, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, turi::flexible_type> > >)'
/home/castl/turicreate/src/unity/server/registration.cpp:85: undefined reference to `turi::text::cgs_topic_model::~cgs_topic_model()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::text::alias_topic_model::alias_topic_model()':
/home/castl/turicreate/src/unity/toolkits/text/alias.hpp:67: undefined reference to `vtable for turi::text::alias_topic_model'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `register_model_helper<turi::text::alias_topic_model>':
/home/castl/turicreate/src/unity/server/registration.cpp:86: undefined reference to `turi::text::alias_topic_model::name[abi:cxx11]()'
/home/castl/turicreate/src/unity/server/registration.cpp:87: undefined reference to `turi::toolkit_class_registry::register_toolkit_class(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<turi::model_base* ()>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, turi::flexible_type, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, turi::flexible_type> > >)'
/home/castl/turicreate/src/unity/server/registration.cpp:85: undefined reference to `turi::text::alias_topic_model::~alias_topic_model()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `register_model_helper<turi::kmeans::kmeans_model>':
/home/castl/turicreate/src/unity/server/registration.cpp:85: undefined reference to `turi::kmeans::kmeans_model::kmeans_model()'
/home/castl/turicreate/src/unity/server/registration.cpp:86: undefined reference to `turi::kmeans::kmeans_model::name[abi:cxx11]()'
/home/castl/turicreate/src/unity/server/registration.cpp:87: undefined reference to `turi::toolkit_class_registry::register_toolkit_class(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<turi::model_base* ()>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, turi::flexible_type, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, turi::flexible_type> > >)'
/home/castl/turicreate/src/unity/server/registration.cpp:85: undefined reference to `turi::kmeans::kmeans_model::~kmeans_model()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::register_models(turi::toolkit_class_registry&)':
/home/castl/turicreate/src/unity/server/registration.cpp:129: undefined reference to `turi::sdk_model::feature_engineering::get_toolkit_class_registration()'
/home/castl/turicreate/src/unity/server/registration.cpp:129: undefined reference to `turi::toolkit_class_registry::register_toolkit_class(std::vector<turi::toolkit_class_specification, std::allocator<turi::toolkit_class_specification> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
/home/castl/turicreate/src/unity/server/registration.cpp:132: undefined reference to `turi::pattern_mining::get_toolkit_class_registration()'
/home/castl/turicreate/src/unity/server/registration.cpp:132: undefined reference to `turi::toolkit_class_registry::register_toolkit_class(std::vector<turi::toolkit_class_specification, std::allocator<turi::toolkit_class_specification> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `register_model_helper<turi::nearest_neighbors::brute_force_neighbors>':
/home/castl/turicreate/src/unity/server/registration.cpp:85: undefined reference to `turi::nearest_neighbors::brute_force_neighbors::~brute_force_neighbors()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `register_model_helper<turi::simple_model>':
/home/castl/turicreate/src/unity/server/registration.cpp:85: undefined reference to `turi::simple_model::~simple_model()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `register_model_helper<turi::supervised::linear_regression>':
/home/castl/turicreate/src/unity/server/registration.cpp:85: undefined reference to `turi::supervised::linear_regression::~linear_regression()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `register_model_helper<turi::kmeans::kmeans_model>':
/home/castl/turicreate/src/unity/server/registration.cpp:85: undefined reference to `turi::kmeans::kmeans_model::~kmeans_model()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `register_model_helper<turi::text::alias_topic_model>':
/home/castl/turicreate/src/unity/server/registration.cpp:85: undefined reference to `turi::text::alias_topic_model::~alias_topic_model()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `register_model_helper<turi::nearest_neighbors::ball_tree_neighbors>':
/home/castl/turicreate/src/unity/server/registration.cpp:85: undefined reference to `turi::nearest_neighbors::ball_tree_neighbors::~ball_tree_neighbors()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `register_model_helper<turi::supervised::linear_svm>':
/home/castl/turicreate/src/unity/server/registration.cpp:85: undefined reference to `turi::supervised::linear_svm::~linear_svm()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `register_model_helper<turi::text::cgs_topic_model>':
/home/castl/turicreate/src/unity/server/registration.cpp:85: undefined reference to `turi::text::cgs_topic_model::~cgs_topic_model()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `register_model_helper<turi::nearest_neighbors::lsh_neighbors>':
/home/castl/turicreate/src/unity/server/registration.cpp:85: undefined reference to `turi::nearest_neighbors::lsh_neighbors::~lsh_neighbors()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `register_model_helper<turi::supervised::logistic_regression>':
/home/castl/turicreate/src/unity/server/registration.cpp:85: undefined reference to `turi::supervised::logistic_regression::~logistic_regression()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `file_logger::operator<<(std::ostream& (*)(std::ostream&))':
/home/castl/turicreate/src/logger/logger.hpp:516: undefined reference to `pthread_getspecific'
/home/castl/turicreate/src/logger/logger.hpp:527: undefined reference to `__print_back_trace()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::distances::jaccard(turi::flexible_type const&, turi::flexible_type const&)::{lambda()#2}::operator()() const [clone .isra.815]':
/home/castl/turicreate/src/unity/toolkits/nearest_neighbors/distances.hpp:215: undefined reference to `global_logger()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `log_stream_dispatch<true>::exec(int, char const*, char const*, int, bool)':
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `global_logger()'
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `file_logger::start_stream(int, char const*, char const*, int, bool)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::distances::compute_distance(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, turi::flexible_type const&, turi::flexible_type const&)::{lambda()#2}::operator()() const [clone .isra.813]':
/home/castl/turicreate/src/unity/toolkits/nearest_neighbors/distances.hpp:157: undefined reference to `global_logger()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `log_stream_dispatch<true>::exec(int, char const*, char const*, int, bool)':
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `global_logger()'
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `file_logger::start_stream(int, char const*, char const*, int, bool)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::distances::compute_distance(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, turi::flexible_type const&, turi::flexible_type const&)::{lambda()#1}::operator()() const [clone .isra.812]':
/home/castl/turicreate/src/unity/toolkits/nearest_neighbors/distances.hpp:115: undefined reference to `global_logger()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `log_stream_dispatch<true>::exec(int, char const*, char const*, int, bool)':
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `global_logger()'
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `file_logger::start_stream(int, char const*, char const*, int, bool)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::distances::jaccard(turi::flexible_type const&, turi::flexible_type const&)::{lambda()#1}::operator()() const [clone .isra.814]':
/home/castl/turicreate/src/unity/toolkits/nearest_neighbors/distances.hpp:196: undefined reference to `global_logger()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `log_stream_dispatch<true>::exec(int, char const*, char const*, int, bool)':
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `global_logger()'
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `file_logger::start_stream(int, char const*, char const*, int, bool)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::distances::weighted_jaccard(turi::flexible_type const&, turi::flexible_type const&)::{lambda()#2}::operator()() const [clone .isra.817]':
/home/castl/turicreate/src/unity/toolkits/nearest_neighbors/distances.hpp:239: undefined reference to `global_logger()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `log_stream_dispatch<true>::exec(int, char const*, char const*, int, bool)':
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `global_logger()'
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `file_logger::start_stream(int, char const*, char const*, int, bool)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::distances::weighted_jaccard(turi::flexible_type const&, turi::flexible_type const&)::{lambda()#1}::operator()() const [clone .isra.816]':
/home/castl/turicreate/src/unity/toolkits/nearest_neighbors/distances.hpp:223: undefined reference to `global_logger()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `log_stream_dispatch<true>::exec(int, char const*, char const*, int, bool)':
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `global_logger()'
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `file_logger::start_stream(int, char const*, char const*, int, bool)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::distances::apply(turi::gl_sarray, turi::gl_sarray, turi::function_closure_info)::{lambda()#1}::operator()() const [clone .isra.818]':
/home/castl/turicreate/src/unity/toolkits/nearest_neighbors/distances.hpp:254: undefined reference to `global_logger()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `log_stream_dispatch<true>::exec(int, char const*, char const*, int, bool)':
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `global_logger()'
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `file_logger::start_stream(int, char const*, char const*, int, bool)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `double arma::blas::dot<double>(unsigned long long, double const*, double const*)':
/home/castl/turicreate/release/src/external/armadillo/tmp/include/armadillo_bits/wrapper_blas.hpp:191: undefined reference to `wrapper_ddot_'
/home/castl/turicreate/release/src/external/armadillo/tmp/include/armadillo_bits/wrapper_blas.hpp:191: undefined reference to `wrapper_ddot_'
/home/castl/turicreate/release/src/external/armadillo/tmp/include/armadillo_bits/wrapper_blas.hpp:191: undefined reference to `wrapper_ddot_'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::mutex::mutex(turi::mutex const&)::{lambda()#1}::operator()() const':
/home/castl/turicreate/src/platform/parallel/mutex.hpp:46: undefined reference to `global_logger()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `log_stream_dispatch<true>::exec(int, char const*, char const*, int, bool)':
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `global_logger()'
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `file_logger::start_stream(int, char const*, char const*, int, bool)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::mutex::mutex(turi::mutex const&)::{lambda()#1}::operator()() const':
/home/castl/turicreate/src/platform/parallel/mutex.hpp:46: undefined reference to `__print_back_trace()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::nearest_neighbors::distance_metric::distance(arma::Col<double> const&, arma::Col<double> const&) const::{lambda()#1}::operator()() const':
/home/castl/turicreate/src/unity/toolkits/nearest_neighbors/distance_functions.hpp:107: undefined reference to `global_logger()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `log_stream_dispatch<true>::exec(int, char const*, char const*, int, bool)':
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `global_logger()'
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `file_logger::start_stream(int, char const*, char const*, int, bool)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::nearest_neighbors::distance_metric::distance(arma::Col<double> const&, arma::Col<double> const&) const::{lambda()#1}::operator()() const':
/home/castl/turicreate/src/unity/toolkits/nearest_neighbors/distance_functions.hpp:107: undefined reference to `__print_back_trace()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::nearest_neighbors::distance_metric::distance(turi::sparse_vector<double, unsigned long> const&, turi::sparse_vector<double, unsigned long> const&) const::{lambda()#1}::operator()() const':
/home/castl/turicreate/src/unity/toolkits/nearest_neighbors/distance_functions.hpp:111: undefined reference to `global_logger()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `log_stream_dispatch<true>::exec(int, char const*, char const*, int, bool)':
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `global_logger()'
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `file_logger::start_stream(int, char const*, char const*, int, bool)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::nearest_neighbors::distance_metric::distance(turi::sparse_vector<double, unsigned long> const&, turi::sparse_vector<double, unsigned long> const&) const::{lambda()#1}::operator()() const':
/home/castl/turicreate/src/unity/toolkits/nearest_neighbors/distance_functions.hpp:111: undefined reference to `__print_back_trace()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::nearest_neighbors::distance_metric::distance(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const::{lambda()#1}::operator()() const':
/home/castl/turicreate/src/unity/toolkits/nearest_neighbors/distance_functions.hpp:115: undefined reference to `global_logger()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `log_stream_dispatch<true>::exec(int, char const*, char const*, int, bool)':
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `global_logger()'
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `file_logger::start_stream(int, char const*, char const*, int, bool)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::nearest_neighbors::distance_metric::distance(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const::{lambda()#1}::operator()() const':
/home/castl/turicreate/src/unity/toolkits/nearest_neighbors/distance_functions.hpp:115: undefined reference to `__print_back_trace()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::nearest_neighbors::distance_metric::distance(std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&) const::{lambda()#1}::operator()() const':
/home/castl/turicreate/src/unity/toolkits/nearest_neighbors/distance_functions.hpp:119: undefined reference to `global_logger()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `log_stream_dispatch<true>::exec(int, char const*, char const*, int, bool)':
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `global_logger()'
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `file_logger::start_stream(int, char const*, char const*, int, bool)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::nearest_neighbors::distance_metric::distance(std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&) const::{lambda()#1}::operator()() const':
/home/castl/turicreate/src/unity/toolkits/nearest_neighbors/distance_functions.hpp:119: undefined reference to `__print_back_trace()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::recsys::recsys_model_base::train[abi:cxx11](turi::v2::ml_data const&, turi::v2::ml_data const&)::{lambda()#1}::operator()() const':
/home/castl/turicreate/src/unity/toolkits/recsys/recsys_model_base.hpp:75: undefined reference to `global_logger()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `log_stream_dispatch<true>::exec(int, char const*, char const*, int, bool)':
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `global_logger()'
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `file_logger::start_stream(int, char const*, char const*, int, bool)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::recsys::recsys_itemcf::get_similar_users(std::shared_ptr<turi::sarray<turi::flexible_type> >, unsigned long) const::{lambda()#1}::operator()() const':
/home/castl/turicreate/src/unity/toolkits/recsys/models/itemcf.hpp:213: undefined reference to `global_logger()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `log_stream_dispatch<true>::exec(int, char const*, char const*, int, bool)':
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `global_logger()'
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `file_logger::start_stream(int, char const*, char const*, int, bool)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::recsys::recsys_model_base::get(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const::{lambda()#1}::operator()() const::{lambda()#1}::operator()() const':
/home/castl/turicreate/src/unity/toolkits/recsys/recsys_model_base.hpp:87: undefined reference to `global_logger()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `log_stream_dispatch<true>::exec(int, char const*, char const*, int, bool)':
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `global_logger()'
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `file_logger::start_stream(int, char const*, char const*, int, bool)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::recsys::recsys_model_base::get(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const::{lambda()#1}::operator()() const':
/home/castl/turicreate/src/unity/toolkits/recsys/recsys_model_base.hpp:87: undefined reference to `global_logger()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `log_stream_dispatch<true>::exec(int, char const*, char const*, int, bool)':
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `global_logger()'
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `file_logger::start_stream(int, char const*, char const*, int, bool)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::recsys::recsys_model_base::get(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const::{lambda()#1}::operator()() const':
/home/castl/turicreate/src/unity/toolkits/recsys/recsys_model_base.hpp:87: undefined reference to `__print_back_trace()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::nearest_neighbors::distance_metric::make_dist_instance(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda()#1}::operator()() const':
/home/castl/turicreate/src/unity/toolkits/nearest_neighbors/distance_functions.hpp:493: undefined reference to `global_logger()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `log_stream_dispatch<true>::exec(int, char const*, char const*, int, bool)':
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `global_logger()'
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `file_logger::start_stream(int, char const*, char const*, int, bool)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::flexible_type_impl::ndarray<double>::elements() const::{lambda()#1}::operator()() const::{lambda()#1}::operator()() const':
/home/castl/turicreate/src/flexible_type/ndarray.hpp:277: undefined reference to `global_logger()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `log_stream_dispatch<true>::exec(int, char const*, char const*, int, bool)':
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `global_logger()'
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `file_logger::start_stream(int, char const*, char const*, int, bool)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::flexible_type_impl::ndarray<double>::elements() const::{lambda()#1}::operator()() const':
/home/castl/turicreate/src/flexible_type/ndarray.hpp:277: undefined reference to `global_logger()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `log_stream_dispatch<true>::exec(int, char const*, char const*, int, bool)':
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `global_logger()'
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `file_logger::start_stream(int, char const*, char const*, int, bool)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::flexible_type_impl::ndarray<double>::elements() const::{lambda()#1}::operator()() const':
/home/castl/turicreate/src/flexible_type/ndarray.hpp:277: undefined reference to `__print_back_trace()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::flexible_type_impl::ndarray<double>::compact() const::{lambda()#1}::operator()() const::{lambda()#1}::operator()() const':
/home/castl/turicreate/src/flexible_type/ndarray.hpp:449: undefined reference to `global_logger()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `log_stream_dispatch<true>::exec(int, char const*, char const*, int, bool)':
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `global_logger()'
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `file_logger::start_stream(int, char const*, char const*, int, bool)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::flexible_type_impl::ndarray<double>::compact() const::{lambda()#1}::operator()() const':
/home/castl/turicreate/src/flexible_type/ndarray.hpp:449: undefined reference to `global_logger()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `log_stream_dispatch<true>::exec(int, char const*, char const*, int, bool)':
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `global_logger()'
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `file_logger::start_stream(int, char const*, char const*, int, bool)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::flexible_type_impl::ndarray<double>::compact() const::{lambda()#1}::operator()() const':
/home/castl/turicreate/src/flexible_type/ndarray.hpp:449: undefined reference to `__print_back_trace()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::flexible_type_impl::ndarray<double>::elements()::{lambda()#1}::operator()() const::{lambda()#1}::operator()() const':
/home/castl/turicreate/src/flexible_type/ndarray.hpp:269: undefined reference to `global_logger()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `log_stream_dispatch<true>::exec(int, char const*, char const*, int, bool)':
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `global_logger()'
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `file_logger::start_stream(int, char const*, char const*, int, bool)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::flexible_type_impl::ndarray<double>::elements()::{lambda()#1}::operator()() const':
/home/castl/turicreate/src/flexible_type/ndarray.hpp:269: undefined reference to `global_logger()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `log_stream_dispatch<true>::exec(int, char const*, char const*, int, bool)':
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `global_logger()'
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `file_logger::start_stream(int, char const*, char const*, int, bool)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::flexible_type_impl::ndarray<double>::elements()::{lambda()#1}::operator()() const':
/home/castl/turicreate/src/flexible_type/ndarray.hpp:269: undefined reference to `__print_back_trace()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `decltype ({parm#1}(turi::flexible_type::prototype_flex_int)) turi::flexible_type::apply_visitor<turi::flexible_type_impl::city_hash_visitor>(turi::flexible_type_impl::city_hash_visitor) const':
/home/castl/turicreate/src/flexible_type/flexible_type.hpp:1915: undefined reference to `turi::flexible_type_impl::city_hash_visitor::operator()(std::vector<turi::flexible_type, std::allocator<turi::flexible_type> > const&) const'
/home/castl/turicreate/src/flexible_type/flexible_type.hpp:1917: undefined reference to `turi::flexible_type_impl::city_hash_visitor::operator()(std::vector<std::pair<turi::flexible_type, turi::flexible_type>, std::allocator<std::pair<turi::flexible_type, turi::flexible_type> > > const&) const'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::gl_sarray::~gl_sarray()':
/home/castl/turicreate/src/unity/lib/gl_sarray.hpp:198: undefined reference to `vtable for turi::gl_sarray'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::gl_sarray::~gl_sarray()':
/home/castl/turicreate/src/unity/lib/gl_sarray.hpp:198: undefined reference to `vtable for turi::gl_sarray'
/home/castl/turicreate/src/unity/lib/gl_sarray.hpp:198: undefined reference to `vtable for turi::gl_sarray'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `decltype ({parm#1}(turi::flexible_type::prototype_flex_int)) turi::flexible_type::apply_visitor<turi::flexible_type_impl::get_vec_visitor>(turi::flexible_type_impl::get_vec_visitor) const':
/home/castl/turicreate/src/flexible_type/flexible_type.hpp:1921: undefined reference to `turi::flexible_type_impl::get_vec_visitor::operator()(turi::image_type const&) const'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `std::vector<double, std::allocator<double> > turi::flexible_type_impl::get_vec_visitor::operator()<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) const':
/home/castl/turicreate/src/flexible_type/flexible_type_detail.hpp:605: undefined reference to `turi::flexible_type_fail(bool)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `std::vector<double, std::allocator<double> > turi::flexible_type_impl::get_vec_visitor::operator()<std::vector<turi::flexible_type, std::allocator<turi::flexible_type> > >(std::vector<turi::flexible_type, std::allocator<turi::flexible_type> >) const':
/home/castl/turicreate/src/flexible_type/flexible_type_detail.hpp:605: undefined reference to `turi::flexible_type_fail(bool)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `std::vector<double, std::allocator<double> > turi::flexible_type_impl::get_vec_visitor::operator()<std::vector<std::pair<turi::flexible_type, turi::flexible_type>, std::allocator<std::pair<turi::flexible_type, turi::flexible_type> > > >(std::vector<std::pair<turi::flexible_type, turi::flexible_type>, std::allocator<std::pair<turi::flexible_type, turi::flexible_type> > >) const':
/home/castl/turicreate/src/flexible_type/flexible_type_detail.hpp:605: undefined reference to `turi::flexible_type_fail(bool)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `decltype ({parm#1}(turi::flexible_type::prototype_flex_int)) turi::flexible_type::apply_visitor<turi::flexible_type_impl::get_vec_visitor>(turi::flexible_type_impl::get_vec_visitor) const':
/home/castl/turicreate/src/flexible_type/flexible_type.hpp:1921: undefined reference to `turi::flexible_type_impl::get_vec_visitor::operator()(turi::image_type const&) const'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `std::vector<double, std::allocator<double> > turi::flexible_type_impl::get_vec_visitor::operator()<std::vector<std::pair<turi::flexible_type, turi::flexible_type>, std::allocator<std::pair<turi::flexible_type, turi::flexible_type> > > >(std::vector<std::pair<turi::flexible_type, turi::flexible_type>, std::allocator<std::pair<turi::flexible_type, turi::flexible_type> > >) const':
/home/castl/turicreate/src/flexible_type/flexible_type_detail.hpp:605: undefined reference to `turi::flexible_type_fail(bool)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `std::vector<double, std::allocator<double> > turi::flexible_type_impl::get_vec_visitor::operator()<std::vector<turi::flexible_type, std::allocator<turi::flexible_type> > >(std::vector<turi::flexible_type, std::allocator<turi::flexible_type> >) const':
/home/castl/turicreate/src/flexible_type/flexible_type_detail.hpp:605: undefined reference to `turi::flexible_type_fail(bool)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `std::vector<double, std::allocator<double> > turi::flexible_type_impl::get_vec_visitor::operator()<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) const':
/home/castl/turicreate/src/flexible_type/flexible_type_detail.hpp:605: undefined reference to `turi::flexible_type_fail(bool)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `std::vector<double, std::allocator<double> > turi::flexible_type_impl::get_vec_visitor::operator()<std::vector<turi::flexible_type, std::allocator<turi::flexible_type> > >(std::vector<turi::flexible_type, std::allocator<turi::flexible_type> >) const':
/home/castl/turicreate/src/flexible_type/flexible_type_detail.hpp:605: undefined reference to `turi::flexible_type_fail(bool)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::supervised::xgboost::xgboost_model::~xgboost_model()':
/home/castl/turicreate/src/toolkits/supervised_learning/xgboost.hpp:45: undefined reference to `vtable for turi::supervised::xgboost::xgboost_model'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::supervised::supervised_learning_model_base::~supervised_learning_model_base()':
/home/castl/turicreate/src/toolkits/supervised_learning/supervised_learning.hpp:188: undefined reference to `vtable for turi::supervised::supervised_learning_model_base'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::ml_model_base::~ml_model_base()':
/home/castl/turicreate/src/unity/toolkits/ml_model/ml_model.hpp:70: undefined reference to `vtable for turi::ml_model_base'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::model_base::~model_base()':
/home/castl/turicreate/src/unity/lib/api/model_interface.hpp:38: undefined reference to `cppipc::ipc_object_base::~ipc_object_base()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::recsys::recsys_model_base::~recsys_model_base()':
/home/castl/turicreate/src/unity/toolkits/recsys/recsys_model_base.hpp:51: undefined reference to `vtable for turi::recsys::recsys_model_base'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::ml_model_base::~ml_model_base()':
/home/castl/turicreate/src/unity/toolkits/ml_model/ml_model.hpp:70: undefined reference to `vtable for turi::ml_model_base'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::model_base::~model_base()':
/home/castl/turicreate/src/unity/lib/api/model_interface.hpp:38: undefined reference to `cppipc::ipc_object_base::~ipc_object_base()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::recsys::recsys_itemcf::recsys_itemcf()':
/home/castl/turicreate/src/unity/toolkits/recsys/models/itemcf.hpp:95: undefined reference to `vtable for turi::recsys::recsys_itemcf'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::recsys::recsys_itemcf::~recsys_itemcf()':
/home/castl/turicreate/src/unity/toolkits/recsys/models/itemcf.hpp:95: undefined reference to `vtable for turi::recsys::recsys_itemcf'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::text::topic_model::~topic_model()':
/home/castl/turicreate/src/unity/toolkits/text/topic_model.hpp:59: undefined reference to `vtable for turi::text::topic_model'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::ml_model_base::~ml_model_base()':
/home/castl/turicreate/src/unity/toolkits/ml_model/ml_model.hpp:70: undefined reference to `vtable for turi::ml_model_base'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::model_base::~model_base()':
/home/castl/turicreate/src/unity/lib/api/model_interface.hpp:38: undefined reference to `cppipc::ipc_object_base::~ipc_object_base()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::text::topic_model::~topic_model()':
/home/castl/turicreate/src/unity/toolkits/text/topic_model.hpp:59: undefined reference to `vtable for turi::text::topic_model'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::ml_model_base::~ml_model_base()':
/home/castl/turicreate/src/unity/toolkits/ml_model/ml_model.hpp:70: undefined reference to `vtable for turi::ml_model_base'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::model_base::~model_base()':
/home/castl/turicreate/src/unity/lib/api/model_interface.hpp:38: undefined reference to `cppipc::ipc_object_base::~ipc_object_base()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::recsys::recsys_factorization_model_base::~recsys_factorization_model_base()':
/home/castl/turicreate/src/unity/toolkits/recsys/models/factorization_models.hpp:26: undefined reference to `vtable for turi::recsys::recsys_factorization_model_base'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::recsys::recsys_model_base::~recsys_model_base()':
/home/castl/turicreate/src/unity/toolkits/recsys/recsys_model_base.hpp:51: undefined reference to `vtable for turi::recsys::recsys_model_base'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::ml_model_base::~ml_model_base()':
/home/castl/turicreate/src/unity/toolkits/ml_model/ml_model.hpp:70: undefined reference to `vtable for turi::ml_model_base'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::model_base::~model_base()':
/home/castl/turicreate/src/unity/lib/api/model_interface.hpp:38: undefined reference to `cppipc::ipc_object_base::~ipc_object_base()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::recsys::recsys_factorization_model_base::~recsys_factorization_model_base()':
/home/castl/turicreate/src/unity/toolkits/recsys/models/factorization_models.hpp:26: undefined reference to `vtable for turi::recsys::recsys_factorization_model_base'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::recsys::recsys_model_base::~recsys_model_base()':
/home/castl/turicreate/src/unity/toolkits/recsys/recsys_model_base.hpp:51: undefined reference to `vtable for turi::recsys::recsys_model_base'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::ml_model_base::~ml_model_base()':
/home/castl/turicreate/src/unity/toolkits/ml_model/ml_model.hpp:70: undefined reference to `vtable for turi::ml_model_base'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::model_base::~model_base()':
/home/castl/turicreate/src/unity/lib/api/model_interface.hpp:38: undefined reference to `cppipc::ipc_object_base::~ipc_object_base()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::recsys::recsys_popularity::~recsys_popularity()':
/home/castl/turicreate/src/unity/toolkits/recsys/models/popularity.hpp:27: undefined reference to `vtable for turi::recsys::recsys_popularity'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::recsys::recsys_model_base::~recsys_model_base()':
/home/castl/turicreate/src/unity/toolkits/recsys/recsys_model_base.hpp:51: undefined reference to `vtable for turi::recsys::recsys_model_base'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::ml_model_base::~ml_model_base()':
/home/castl/turicreate/src/unity/toolkits/ml_model/ml_model.hpp:70: undefined reference to `vtable for turi::ml_model_base'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::model_base::~model_base()':
/home/castl/turicreate/src/unity/lib/api/model_interface.hpp:38: undefined reference to `cppipc::ipc_object_base::~ipc_object_base()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::recsys::recsys_factorization_model_base::~recsys_factorization_model_base()':
/home/castl/turicreate/src/unity/toolkits/recsys/models/factorization_models.hpp:26: undefined reference to `vtable for turi::recsys::recsys_factorization_model_base'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::recsys::recsys_model_base::~recsys_model_base()':
/home/castl/turicreate/src/unity/toolkits/recsys/recsys_model_base.hpp:51: undefined reference to `vtable for turi::recsys::recsys_model_base'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::ml_model_base::~ml_model_base()':
/home/castl/turicreate/src/unity/toolkits/ml_model/ml_model.hpp:70: undefined reference to `vtable for turi::ml_model_base'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::model_base::~model_base()':
/home/castl/turicreate/src/unity/lib/api/model_interface.hpp:38: undefined reference to `cppipc::ipc_object_base::~ipc_object_base()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::recsys::recsys_model_base::~recsys_model_base()':
/home/castl/turicreate/src/unity/toolkits/recsys/recsys_model_base.hpp:51: undefined reference to `vtable for turi::recsys::recsys_model_base'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::ml_model_base::~ml_model_base()':
/home/castl/turicreate/src/unity/toolkits/ml_model/ml_model.hpp:70: undefined reference to `vtable for turi::ml_model_base'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::model_base::~model_base()':
/home/castl/turicreate/src/unity/lib/api/model_interface.hpp:38: undefined reference to `cppipc::ipc_object_base::~ipc_object_base()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::recsys::recsys_factorization_model_base::~recsys_factorization_model_base()':
/home/castl/turicreate/src/unity/toolkits/recsys/models/factorization_models.hpp:26: undefined reference to `vtable for turi::recsys::recsys_factorization_model_base'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::recsys::recsys_model_base::~recsys_model_base()':
/home/castl/turicreate/src/unity/toolkits/recsys/recsys_model_base.hpp:51: undefined reference to `vtable for turi::recsys::recsys_model_base'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::ml_model_base::~ml_model_base()':
/home/castl/turicreate/src/unity/toolkits/ml_model/ml_model.hpp:70: undefined reference to `vtable for turi::ml_model_base'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::model_base::~model_base()':
/home/castl/turicreate/src/unity/lib/api/model_interface.hpp:38: undefined reference to `cppipc::ipc_object_base::~ipc_object_base()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::recsys::recsys_factorization_model_base::~recsys_factorization_model_base()':
/home/castl/turicreate/src/unity/toolkits/recsys/models/factorization_models.hpp:26: undefined reference to `vtable for turi::recsys::recsys_factorization_model_base'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::recsys::recsys_model_base::~recsys_model_base()':
/home/castl/turicreate/src/unity/toolkits/recsys/recsys_model_base.hpp:51: undefined reference to `vtable for turi::recsys::recsys_model_base'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::ml_model_base::~ml_model_base()':
/home/castl/turicreate/src/unity/toolkits/ml_model/ml_model.hpp:70: undefined reference to `vtable for turi::ml_model_base'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::model_base::~model_base()':
/home/castl/turicreate/src/unity/lib/api/model_interface.hpp:38: undefined reference to `cppipc::ipc_object_base::~ipc_object_base()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::recsys::recsys_factorization_model_base::~recsys_factorization_model_base()':
/home/castl/turicreate/src/unity/toolkits/recsys/models/factorization_models.hpp:26: undefined reference to `vtable for turi::recsys::recsys_factorization_model_base'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::recsys::recsys_model_base::~recsys_model_base()':
/home/castl/turicreate/src/unity/toolkits/recsys/recsys_model_base.hpp:51: undefined reference to `vtable for turi::recsys::recsys_model_base'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::ml_model_base::~ml_model_base()':
/home/castl/turicreate/src/unity/toolkits/ml_model/ml_model.hpp:70: undefined reference to `vtable for turi::ml_model_base'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::model_base::~model_base()':
/home/castl/turicreate/src/unity/lib/api/model_interface.hpp:38: undefined reference to `cppipc::ipc_object_base::~ipc_object_base()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::recsys::recsys_popularity::~recsys_popularity()':
/home/castl/turicreate/src/unity/toolkits/recsys/models/popularity.hpp:27: undefined reference to `vtable for turi::recsys::recsys_popularity'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::recsys::recsys_model_base::~recsys_model_base()':
/home/castl/turicreate/src/unity/toolkits/recsys/recsys_model_base.hpp:51: undefined reference to `vtable for turi::recsys::recsys_model_base'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::ml_model_base::~ml_model_base()':
/home/castl/turicreate/src/unity/toolkits/ml_model/ml_model.hpp:70: undefined reference to `vtable for turi::ml_model_base'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::model_base::~model_base()':
/home/castl/turicreate/src/unity/lib/api/model_interface.hpp:38: undefined reference to `cppipc::ipc_object_base::~ipc_object_base()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `boost::fusion::vector_detail::store<0ul, turi::gl_sarray>::store()':
/home/castl/turicreate/deps/local/include/boost/fusion/container/vector/vector.hpp:131: undefined reference to `turi::gl_sarray::gl_sarray()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `boost::fusion::vector_detail::store<1ul, turi::gl_sarray>::store()':
/home/castl/turicreate/deps/local/include/boost/fusion/container/vector/vector.hpp:131: undefined reference to `turi::gl_sarray::gl_sarray()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::toolkit_function_wrapper_impl::result_of_function_wrapper<turi::gl_sarray>::result_of_function_wrapper()':
/home/castl/turicreate/src/unity/lib/toolkit_function_wrapper_impl.hpp:112: undefined reference to `turi::gl_sarray::gl_sarray()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::gl_sarray boost::fusion::detail::invoke_fn_ptr<turi::gl_sarray (*)(turi::gl_sarray, turi::gl_sarray, turi::function_closure_info), boost::fusion::vector<turi::gl_sarray, turi::gl_sarray, turi::function_closure_info>, 3, true>::call<turi::gl_sarray (*)(turi::gl_sarray, turi::gl_sarray, turi::function_closure_info)>(turi::gl_sarray (*&)(turi::gl_sarray, turi::gl_sarray, turi::function_closure_info), boost::fusion::vector<turi::gl_sarray, turi::gl_sarray, turi::function_closure_info>&)':
/home/castl/turicreate/deps/local/include/boost/fusion/functional/invocation/invoke.hpp:247: undefined reference to `turi::gl_sarray::gl_sarray(turi::gl_sarray const&)'
/home/castl/turicreate/deps/local/include/boost/fusion/functional/invocation/invoke.hpp:247: undefined reference to `turi::gl_sarray::gl_sarray(turi::gl_sarray const&)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::gl_sarray::~gl_sarray()':
/home/castl/turicreate/src/unity/lib/gl_sarray.hpp:198: undefined reference to `vtable for turi::gl_sarray'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `void turi::toolkit_function_wrapper_impl::result_of_function_wrapper<turi::gl_sarray>::call<std::function<boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > (std::vector<boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> >, std::allocator<boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > > > const&)> turi::toolkit_function_wrapper_impl::generate_native_function_wrapper<3ul, turi::gl_sarray (*)(turi::gl_sarray, turi::gl_sarray, turi::function_closure_info)>(turi::gl_sarray (*)(turi::gl_sarray, turi::gl_sarray, turi::function_closure_info))::{lambda(std::vector<boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> >, std::allocator<boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > > > const&)#1}::operator()(std::vector<boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> >, std::allocator<boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > > > const&) const::{lambda()#1}>(std::function<boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > (std::vector<boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> >, std::allocator<boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > > > const&)> turi::toolkit_function_wrapper_impl::generate_native_function_wrapper<3ul, turi::gl_sarray (*)(turi::gl_sarray, turi::gl_sarray, turi::function_closure_info)>(turi::gl_sarray (*)(turi::gl_sarray, turi::gl_sarray, turi::function_closure_info))::{lambda(std::vector<boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> >, std::allocator<boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > > > const&)#1}::operator()(std::vector<boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> >, std::allocator<boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > > > const&) const::{lambda()#1})':
/home/castl/turicreate/src/unity/lib/toolkit_function_wrapper_impl.hpp:117: undefined reference to `turi::gl_sarray::operator=(turi::gl_sarray&&)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > turi::to_variant<turi::gl_sarray>(turi::gl_sarray const&)':
/home/castl/turicreate/src/unity/lib/variant.hpp:161: undefined reference to `turi::gl_sarray::gl_sarray(turi::gl_sarray const&)'
/home/castl/turicreate/src/unity/lib/variant.hpp:161: undefined reference to `turi::variant_converter<turi::gl_sarray, void>::set[abi:cxx11](turi::gl_sarray)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `void turi::toolkit_function_wrapper_impl::result_of_function_wrapper<turi::gl_sarray>::call<std::function<boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > (std::vector<boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> >, std::allocator<boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > > > const&)> turi::toolkit_function_wrapper_impl::generate_native_function_wrapper<3ul, turi::gl_sarray (*)(turi::gl_sarray, turi::gl_sarray, turi::function_closure_info)>(turi::gl_sarray (*)(turi::gl_sarray, turi::gl_sarray, turi::function_closure_info))::{lambda(std::vector<boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> >, std::allocator<boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > > > const&)#1}::operator()(std::vector<boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> >, std::allocator<boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > > > const&) const::{lambda()#1}>(std::function<boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > (std::vector<boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> >, std::allocator<boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > > > const&)> turi::toolkit_function_wrapper_impl::generate_native_function_wrapper<3ul, turi::gl_sarray (*)(turi::gl_sarray, turi::gl_sarray, turi::function_closure_info)>(turi::gl_sarray (*)(turi::gl_sarray, turi::gl_sarray, turi::function_closure_info))::{lambda(std::vector<boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> >, std::allocator<boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > > > const&)#1}::operator()(std::vector<boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> >, std::allocator<boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > > > const&) const::{lambda()#1})':
/home/castl/turicreate/src/unity/lib/toolkit_function_wrapper_impl.hpp:117: undefined reference to `turi::gl_sarray::operator=(turi::gl_sarray&&)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > turi::to_variant<turi::gl_sarray>(turi::gl_sarray const&)':
/home/castl/turicreate/src/unity/lib/variant.hpp:161: undefined reference to `turi::gl_sarray::gl_sarray(turi::gl_sarray const&)'
/home/castl/turicreate/src/unity/lib/variant.hpp:161: undefined reference to `turi::variant_converter<turi::gl_sarray, void>::set[abi:cxx11](turi::gl_sarray)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `std::decay<turi::gl_sarray>::type turi::variant_get_value<turi::gl_sarray>(boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > const&)':
/home/castl/turicreate/src/unity/lib/variant.hpp:173: undefined reference to `turi::variant_converter<turi::gl_sarray, void>::get(boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > const&)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `void turi::toolkit_function_wrapper_impl::fill_in_args<boost::fusion::vector<turi::gl_sarray, turi::gl_sarray, turi::function_closure_info> >::operator()<0>(mpl_::integral_c<int, 0>) const':
/home/castl/turicreate/src/unity/lib/toolkit_function_wrapper_impl.hpp:224: undefined reference to `turi::gl_sarray::operator=(turi::gl_sarray&&)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `std::decay<turi::gl_sarray>::type turi::variant_get_value<turi::gl_sarray>(boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > const&)':
/home/castl/turicreate/src/unity/lib/variant.hpp:173: undefined reference to `turi::variant_converter<turi::gl_sarray, void>::get(boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > const&)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `void turi::toolkit_function_wrapper_impl::fill_in_args<boost::fusion::vector<turi::gl_sarray, turi::gl_sarray, turi::function_closure_info> >::operator()<1>(mpl_::integral_c<int, 1>) const':
/home/castl/turicreate/src/unity/lib/toolkit_function_wrapper_impl.hpp:224: undefined reference to `turi::gl_sarray::operator=(turi::gl_sarray&&)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::gl_sarray::~gl_sarray()':
/home/castl/turicreate/src/unity/lib/gl_sarray.hpp:198: undefined reference to `vtable for turi::gl_sarray'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::toolkit_function_wrapper_impl::result_of_function_wrapper<turi::gl_sarray>::result_of_function_wrapper()':
/home/castl/turicreate/src/unity/lib/toolkit_function_wrapper_impl.hpp:112: undefined reference to `turi::gl_sarray::gl_sarray()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::gl_sarray boost::fusion::detail::invoke_fn_ptr<turi::gl_sarray (*)(turi::gl_sarray, turi::gl_sarray, turi::function_closure_info), boost::fusion::vector<turi::gl_sarray, turi::gl_sarray, turi::function_closure_info>, 3, true>::call<turi::gl_sarray (*)(turi::gl_sarray, turi::gl_sarray, turi::function_closure_info)>(turi::gl_sarray (*&)(turi::gl_sarray, turi::gl_sarray, turi::function_closure_info), boost::fusion::vector<turi::gl_sarray, turi::gl_sarray, turi::function_closure_info>&)':
/home/castl/turicreate/deps/local/include/boost/fusion/functional/invocation/invoke.hpp:247: undefined reference to `turi::gl_sarray::gl_sarray(turi::gl_sarray const&)'
/home/castl/turicreate/deps/local/include/boost/fusion/functional/invocation/invoke.hpp:247: undefined reference to `turi::gl_sarray::gl_sarray(turi::gl_sarray const&)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::flexible_type turi::safe_varmap_get<turi::flexible_type>(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > > > > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)::{lambda()#1}::operator()() const':
/home/castl/turicreate/src/unity/lib/toolkit_util.hpp:22: undefined reference to `global_logger()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `log_stream_dispatch<true>::exec(int, char const*, char const*, int, bool)':
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `global_logger()'
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `file_logger::start_stream(int, char const*, char const*, int, bool)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > turi::safe_varmap_get<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > > > > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)::{lambda()#1}::operator()() const':
/home/castl/turicreate/src/unity/lib/toolkit_util.hpp:22: undefined reference to `global_logger()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `log_stream_dispatch<true>::exec(int, char const*, char const*, int, bool)':
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `global_logger()'
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `file_logger::start_stream(int, char const*, char const*, int, bool)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::function_closure_info turi::safe_varmap_get<turi::function_closure_info>(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > > > > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)::{lambda()#1}::operator()() const':
/home/castl/turicreate/src/unity/lib/toolkit_util.hpp:22: undefined reference to `global_logger()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `log_stream_dispatch<true>::exec(int, char const*, char const*, int, bool)':
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `global_logger()'
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `file_logger::start_stream(int, char const*, char const*, int, bool)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `std::vector<double, std::allocator<double> > turi::safe_varmap_get<std::vector<double, std::allocator<double> > >(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > > > > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)::{lambda()#1}::operator()() const':
/home/castl/turicreate/src/unity/lib/toolkit_util.hpp:22: undefined reference to `global_logger()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `log_stream_dispatch<true>::exec(int, char const*, char const*, int, bool)':
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `global_logger()'
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `file_logger::start_stream(int, char const*, char const*, int, bool)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::gl_sarray turi::safe_varmap_get<turi::gl_sarray>(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > > > > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)::{lambda()#1}::operator()() const':
/home/castl/turicreate/src/unity/lib/toolkit_util.hpp:22: undefined reference to `global_logger()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `log_stream_dispatch<true>::exec(int, char const*, char const*, int, bool)':
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `global_logger()'
/home/castl/turicreate/src/logger/logger.hpp:658: undefined reference to `file_logger::start_stream(int, char const*, char const*, int, bool)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `boost::fusion::vector_detail::store<0ul, turi::gl_sarray>::store()':
/home/castl/turicreate/deps/local/include/boost/fusion/container/vector/vector.hpp:131: undefined reference to `turi::gl_sarray::gl_sarray()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `boost::fusion::vector_detail::store<1ul, turi::gl_sarray>::store()':
/home/castl/turicreate/deps/local/include/boost/fusion/container/vector/vector.hpp:131: undefined reference to `turi::gl_sarray::gl_sarray()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::toolkit_function_wrapper_impl::result_of_function_wrapper<turi::gl_sarray>::result_of_function_wrapper()':
/home/castl/turicreate/src/unity/lib/toolkit_function_wrapper_impl.hpp:112: undefined reference to `turi::gl_sarray::gl_sarray()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::gl_sarray boost::fusion::detail::invoke_fn_ptr<turi::gl_sarray (*)(turi::gl_sarray, turi::gl_sarray, turi::function_closure_info), boost::fusion::vector<turi::gl_sarray, turi::gl_sarray, turi::function_closure_info>, 3, true>::call<turi::gl_sarray (*)(turi::gl_sarray, turi::gl_sarray, turi::function_closure_info)>(turi::gl_sarray (*&)(turi::gl_sarray, turi::gl_sarray, turi::function_closure_info), boost::fusion::vector<turi::gl_sarray, turi::gl_sarray, turi::function_closure_info>&)':
/home/castl/turicreate/deps/local/include/boost/fusion/functional/invocation/invoke.hpp:247: undefined reference to `turi::gl_sarray::gl_sarray(turi::gl_sarray const&)'
/home/castl/turicreate/deps/local/include/boost/fusion/functional/invocation/invoke.hpp:247: undefined reference to `turi::gl_sarray::gl_sarray(turi::gl_sarray const&)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `void turi::toolkit_function_wrapper_impl::result_of_function_wrapper<turi::gl_sarray>::call<std::function<boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > (std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > > > >)> turi::toolkit_function_wrapper_impl::generate_function_wrapper<3ul, turi::gl_sarray (*)(turi::gl_sarray, turi::gl_sarray, turi::function_closure_info)>(turi::gl_sarray (*)(turi::gl_sarray, turi::gl_sarray, turi::function_closure_info), std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >)::{lambda(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > > > >)#1}::operator()(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > > > >) const::{lambda()#1}>(std::function<boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > (std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > > > >)> turi::toolkit_function_wrapper_impl::generate_function_wrapper<3ul, turi::gl_sarray (*)(turi::gl_sarray, turi::gl_sarray, turi::function_closure_info)>(turi::gl_sarray (*)(turi::gl_sarray, turi::gl_sarray, turi::function_closure_info), std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >)::{lambda(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > > > >)#1}::operator()(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > > > >) const::{lambda()#1})':
/home/castl/turicreate/src/unity/lib/toolkit_function_wrapper_impl.hpp:117: undefined reference to `turi::gl_sarray::operator=(turi::gl_sarray&&)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > turi::to_variant<turi::gl_sarray>(turi::gl_sarray const&)':
/home/castl/turicreate/src/unity/lib/variant.hpp:161: undefined reference to `turi::gl_sarray::gl_sarray(turi::gl_sarray const&)'
/home/castl/turicreate/src/unity/lib/variant.hpp:161: undefined reference to `turi::variant_converter<turi::gl_sarray, void>::set[abi:cxx11](turi::gl_sarray)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `std::decay<turi::gl_sarray>::type turi::variant_get_value<turi::gl_sarray>(boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > const&)':
/home/castl/turicreate/src/unity/lib/variant.hpp:173: undefined reference to `turi::variant_converter<turi::gl_sarray, void>::get(boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > const&)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `void turi::toolkit_function_wrapper_impl::fill_named_in_args<boost::fusion::vector<turi::gl_sarray, turi::gl_sarray, turi::function_closure_info> >::operator()<0>(mpl_::integral_c<int, 0>) const':
/home/castl/turicreate/src/unity/lib/toolkit_function_wrapper_impl.hpp:191: undefined reference to `turi::gl_sarray::operator=(turi::gl_sarray&&)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `std::decay<turi::gl_sarray>::type turi::variant_get_value<turi::gl_sarray>(boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > const&)':
/home/castl/turicreate/src/unity/lib/variant.hpp:173: undefined reference to `turi::variant_converter<turi::gl_sarray, void>::get(boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > const&)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `void turi::toolkit_function_wrapper_impl::fill_named_in_args<boost::fusion::vector<turi::gl_sarray, turi::gl_sarray, turi::function_closure_info> >::operator()<1>(mpl_::integral_c<int, 1>) const':
/home/castl/turicreate/src/unity/lib/toolkit_function_wrapper_impl.hpp:191: undefined reference to `turi::gl_sarray::operator=(turi::gl_sarray&&)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::toolkit_function_wrapper_impl::result_of_function_wrapper<turi::gl_sarray>::result_of_function_wrapper()':
/home/castl/turicreate/src/unity/lib/toolkit_function_wrapper_impl.hpp:112: undefined reference to `turi::gl_sarray::gl_sarray()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::gl_sarray boost::fusion::detail::invoke_fn_ptr<turi::gl_sarray (*)(turi::gl_sarray, turi::gl_sarray, turi::function_closure_info), boost::fusion::vector<turi::gl_sarray, turi::gl_sarray, turi::function_closure_info>, 3, true>::call<turi::gl_sarray (*)(turi::gl_sarray, turi::gl_sarray, turi::function_closure_info)>(turi::gl_sarray (*&)(turi::gl_sarray, turi::gl_sarray, turi::function_closure_info), boost::fusion::vector<turi::gl_sarray, turi::gl_sarray, turi::function_closure_info>&)':
/home/castl/turicreate/deps/local/include/boost/fusion/functional/invocation/invoke.hpp:247: undefined reference to `turi::gl_sarray::gl_sarray(turi::gl_sarray const&)'
/home/castl/turicreate/deps/local/include/boost/fusion/functional/invocation/invoke.hpp:247: undefined reference to `turi::gl_sarray::gl_sarray(turi::gl_sarray const&)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `void turi::toolkit_function_wrapper_impl::result_of_function_wrapper<turi::gl_sarray>::call<std::function<boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > (std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > > > >)> turi::toolkit_function_wrapper_impl::generate_function_wrapper<3ul, turi::gl_sarray (*)(turi::gl_sarray, turi::gl_sarray, turi::function_closure_info)>(turi::gl_sarray (*)(turi::gl_sarray, turi::gl_sarray, turi::function_closure_info), std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >)::{lambda(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > > > >)#1}::operator()(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > > > >) const::{lambda()#1}>(std::function<boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > (std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > > > >)> turi::toolkit_function_wrapper_impl::generate_function_wrapper<3ul, turi::gl_sarray (*)(turi::gl_sarray, turi::gl_sarray, turi::function_closure_info)>(turi::gl_sarray (*)(turi::gl_sarray, turi::gl_sarray, turi::function_closure_info), std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >)::{lambda(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > > > >)#1}::operator()(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > > > >) const::{lambda()#1})':
/home/castl/turicreate/src/unity/lib/toolkit_function_wrapper_impl.hpp:117: undefined reference to `turi::gl_sarray::operator=(turi::gl_sarray&&)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `std::decay<turi::gl_sarray>::type turi::variant_get_value<turi::gl_sarray>(boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > const&)':
/home/castl/turicreate/src/unity/lib/variant.hpp:173: undefined reference to `turi::variant_converter<turi::gl_sarray, void>::get(boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > const&)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `void turi::toolkit_function_wrapper_impl::fill_named_in_args<boost::fusion::vector<turi::gl_sarray, turi::gl_sarray, turi::function_closure_info> >::operator()<1>(mpl_::integral_c<int, 1>) const':
/home/castl/turicreate/src/unity/lib/toolkit_function_wrapper_impl.hpp:191: undefined reference to `turi::gl_sarray::operator=(turi::gl_sarray&&)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `__static_initialization_and_destruction_0(int, int) [clone .constprop.1870]':
/home/castl/turicreate/deps/local/include/boost/system/error_code.hpp:206: undefined reference to `boost::system::generic_category()'
/home/castl/turicreate/deps/local/include/boost/system/error_code.hpp:208: undefined reference to `boost::system::generic_category()'
/home/castl/turicreate/deps/local/include/boost/system/error_code.hpp:210: undefined reference to `boost::system::system_category()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::ml_model_base::ml_model_base(turi::ml_model_base const&)':
/home/castl/turicreate/src/unity/toolkits/ml_model/ml_model.hpp:63: undefined reference to `vtable for turi::ml_model_base'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::recsys::recsys_model_base::recsys_model_base(turi::recsys::recsys_model_base const&)':
/home/castl/turicreate/src/unity/toolkits/recsys/recsys_model_base.hpp:43: undefined reference to `vtable for turi::recsys::recsys_model_base'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::recsys::recsys_factorization_model_base::recsys_factorization_model_base(turi::recsys::recsys_factorization_model_base const&)':
/home/castl/turicreate/src/unity/toolkits/recsys/models/factorization_models.hpp:26: undefined reference to `vtable for turi::recsys::recsys_factorization_model_base'
../turicreate/release/src/unity/libunity.a(registration.cpp.o): In function `turi::model_base::~model_base()':
/home/castl/turicreate/src/unity/lib/api/model_interface.hpp:38: undefined reference to `cppipc::ipc_object_base::~ipc_object_base()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTIN4turi6recsys31recsys_item_content_recommenderE[_ZTIN4turi6recsys31recsys_item_content_recommenderE]+0x10): undefined reference to `typeinfo for turi::recsys::recsys_itemcf'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTIN4turi6recsys26recsys_factorization_modelE[_ZTIN4turi6recsys26recsys_factorization_modelE]+0x10): undefined reference to `typeinfo for turi::recsys::recsys_factorization_model_base'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTIN4turi6recsys34recsys_ranking_factorization_modelE[_ZTIN4turi6recsys34recsys_ranking_factorization_modelE]+0x10): undefined reference to `typeinfo for turi::recsys::recsys_factorization_model_base'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys31recsys_item_content_recommenderE[_ZTVN4turi6recsys31recsys_item_content_recommenderE]+0x20): undefined reference to `turi::ml_model_base::list_keys[abi:cxx11]()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys31recsys_item_content_recommenderE[_ZTVN4turi6recsys31recsys_item_content_recommenderE]+0x28): undefined reference to `turi::ml_model_base::get_value(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > > > >&)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys31recsys_item_content_recommenderE[_ZTVN4turi6recsys31recsys_item_content_recommenderE]+0x50): undefined reference to `turi::recsys::recsys_model_base::save_impl(turi::oarchive&) const'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys31recsys_item_content_recommenderE[_ZTVN4turi6recsys31recsys_item_content_recommenderE]+0x58): undefined reference to `turi::recsys::recsys_model_base::load_version(turi::iarchive&, unsigned long)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys31recsys_item_content_recommenderE[_ZTVN4turi6recsys31recsys_item_content_recommenderE]+0x60): undefined reference to `turi::recsys::recsys_model_base::ml_model_base_clone()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys31recsys_item_content_recommenderE[_ZTVN4turi6recsys31recsys_item_content_recommenderE]+0x68): undefined reference to `turi::recsys::recsys_itemcf::init_options(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, turi::flexible_type, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, turi::flexible_type> > > const&)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys31recsys_item_content_recommenderE[_ZTVN4turi6recsys31recsys_item_content_recommenderE]+0x70): undefined reference to `turi::recsys::recsys_itemcf::train[abi:cxx11](turi::v2::ml_data const&)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys31recsys_item_content_recommenderE[_ZTVN4turi6recsys31recsys_item_content_recommenderE]+0xa0): undefined reference to `turi::recsys::recsys_itemcf::predict(turi::v2::ml_data const&) const'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys31recsys_item_content_recommenderE[_ZTVN4turi6recsys31recsys_item_content_recommenderE]+0xb0): undefined reference to `turi::recsys::recsys_itemcf::get_similar_items(std::shared_ptr<turi::sarray<turi::flexible_type> >, unsigned long) const'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys31recsys_item_content_recommenderE[_ZTVN4turi6recsys31recsys_item_content_recommenderE]+0xc0): undefined reference to `turi::recsys::recsys_model_base::get_item_intersection_info(turi::sframe const&) const'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys31recsys_item_content_recommenderE[_ZTVN4turi6recsys31recsys_item_content_recommenderE]+0xc8): undefined reference to `turi::recsys::recsys_itemcf::score_all_items(std::vector<std::pair<unsigned long, double>, std::allocator<std::pair<unsigned long, double> > >&, std::vector<turi::v2::ml_data_entry, std::allocator<turi::v2::ml_data_entry> > const&, unsigned long, std::vector<std::pair<unsigned long, double>, std::allocator<std::pair<unsigned long, double> > > const&, std::vector<std::pair<unsigned long, double>, std::allocator<std::pair<unsigned long, double> > > const&, std::vector<turi::v2::ml_data_row_reference, std::allocator<turi::v2::ml_data_row_reference> > const&, std::shared_ptr<turi::v2::ml_data_side_features> const&) const'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys31recsys_item_content_recommenderE[_ZTVN4turi6recsys31recsys_item_content_recommenderE]+0xd0): undefined reference to `turi::recsys::recsys_itemcf::set_extra_data(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > > > > const&)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys31recsys_item_content_recommenderE[_ZTVN4turi6recsys31recsys_item_content_recommenderE]+0xd8): undefined reference to `turi::recsys::recsys_itemcf::internal_clone()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys31recsys_item_content_recommenderE[_ZTVN4turi6recsys31recsys_item_content_recommenderE]+0xe8): undefined reference to `turi::recsys::recsys_itemcf::internal_save(turi::oarchive&) const'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys31recsys_item_content_recommenderE[_ZTVN4turi6recsys31recsys_item_content_recommenderE]+0xf0): undefined reference to `turi::recsys::recsys_itemcf::internal_load(turi::iarchive&, unsigned long)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys26recsys_factorization_modelE[_ZTVN4turi6recsys26recsys_factorization_modelE]+0x20): undefined reference to `turi::ml_model_base::list_keys[abi:cxx11]()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys26recsys_factorization_modelE[_ZTVN4turi6recsys26recsys_factorization_modelE]+0x28): undefined reference to `turi::ml_model_base::get_value(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > > > >&)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys26recsys_factorization_modelE[_ZTVN4turi6recsys26recsys_factorization_modelE]+0x50): undefined reference to `turi::recsys::recsys_model_base::save_impl(turi::oarchive&) const'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys26recsys_factorization_modelE[_ZTVN4turi6recsys26recsys_factorization_modelE]+0x58): undefined reference to `turi::recsys::recsys_model_base::load_version(turi::iarchive&, unsigned long)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys26recsys_factorization_modelE[_ZTVN4turi6recsys26recsys_factorization_modelE]+0x60): undefined reference to `turi::recsys::recsys_model_base::ml_model_base_clone()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys26recsys_factorization_modelE[_ZTVN4turi6recsys26recsys_factorization_modelE]+0x68): undefined reference to `turi::recsys::recsys_factorization_model_base::init_options(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, turi::flexible_type, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, turi::flexible_type> > > const&)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys26recsys_factorization_modelE[_ZTVN4turi6recsys26recsys_factorization_modelE]+0x70): undefined reference to `turi::recsys::recsys_factorization_model_base::train[abi:cxx11](turi::v2::ml_data const&)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys26recsys_factorization_modelE[_ZTVN4turi6recsys26recsys_factorization_modelE]+0x78): undefined reference to `turi::recsys::recsys_factorization_model_base::train[abi:cxx11](turi::v2::ml_data const&, turi::v2::ml_data const&)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys26recsys_factorization_modelE[_ZTVN4turi6recsys26recsys_factorization_modelE]+0x90): undefined reference to `turi::recsys::recsys_factorization_model_base::list_fields[abi:cxx11]() const'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys26recsys_factorization_modelE[_ZTVN4turi6recsys26recsys_factorization_modelE]+0x98): undefined reference to `turi::recsys::recsys_factorization_model_base::get(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys26recsys_factorization_modelE[_ZTVN4turi6recsys26recsys_factorization_modelE]+0xa0): undefined reference to `turi::recsys::recsys_factorization_model_base::predict(turi::v2::ml_data const&) const'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys26recsys_factorization_modelE[_ZTVN4turi6recsys26recsys_factorization_modelE]+0xa8): undefined reference to `turi::recsys::recsys_factorization_model_base::get_similar_users(std::shared_ptr<turi::sarray<turi::flexible_type> >, unsigned long) const'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys26recsys_factorization_modelE[_ZTVN4turi6recsys26recsys_factorization_modelE]+0xb0): undefined reference to `turi::recsys::recsys_factorization_model_base::get_similar_items(std::shared_ptr<turi::sarray<turi::flexible_type> >, unsigned long) const'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys26recsys_factorization_modelE[_ZTVN4turi6recsys26recsys_factorization_modelE]+0xb8): undefined reference to `turi::recsys::recsys_factorization_model_base::get_item_similarity_scores(unsigned long, std::vector<std::pair<unsigned long, double>, std::allocator<std::pair<unsigned long, double> > >&) const'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys26recsys_factorization_modelE[_ZTVN4turi6recsys26recsys_factorization_modelE]+0xc0): undefined reference to `turi::recsys::recsys_model_base::get_item_intersection_info(turi::sframe const&) const'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys26recsys_factorization_modelE[_ZTVN4turi6recsys26recsys_factorization_modelE]+0xc8): undefined reference to `turi::recsys::recsys_factorization_model_base::score_all_items(std::vector<std::pair<unsigned long, double>, std::allocator<std::pair<unsigned long, double> > >&, std::vector<turi::v2::ml_data_entry, std::allocator<turi::v2::ml_data_entry> > const&, unsigned long, std::vector<std::pair<unsigned long, double>, std::allocator<std::pair<unsigned long, double> > > const&, std::vector<std::pair<unsigned long, double>, std::allocator<std::pair<unsigned long, double> > > const&, std::vector<turi::v2::ml_data_row_reference, std::allocator<turi::v2::ml_data_row_reference> > const&, std::shared_ptr<turi::v2::ml_data_side_features> const&) const'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys26recsys_factorization_modelE[_ZTVN4turi6recsys26recsys_factorization_modelE]+0xe8): undefined reference to `turi::recsys::recsys_factorization_model_base::internal_save(turi::oarchive&) const'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys26recsys_factorization_modelE[_ZTVN4turi6recsys26recsys_factorization_modelE]+0xf0): undefined reference to `turi::recsys::recsys_factorization_model_base::internal_load(turi::iarchive&, unsigned long)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys34recsys_ranking_factorization_modelE[_ZTVN4turi6recsys34recsys_ranking_factorization_modelE]+0x20): undefined reference to `turi::ml_model_base::list_keys[abi:cxx11]()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys34recsys_ranking_factorization_modelE[_ZTVN4turi6recsys34recsys_ranking_factorization_modelE]+0x28): undefined reference to `turi::ml_model_base::get_value(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<boost::detail::variant::recursive_flag<turi::flexible_type>, std::shared_ptr<turi::unity_sgraph_base>, turi::dataframe_t, std::shared_ptr<turi::model_base>, std::shared_ptr<turi::unity_sframe_base>, std::shared_ptr<turi::unity_sarray_base>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::recursive_variant_, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::recursive_variant_> > >, std::vector<boost::recursive_variant_, std::allocator<boost::recursive_variant_> >, boost::recursive_wrapper<turi::function_closure_info> > > > >&)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys34recsys_ranking_factorization_modelE[_ZTVN4turi6recsys34recsys_ranking_factorization_modelE]+0x50): undefined reference to `turi::recsys::recsys_model_base::save_impl(turi::oarchive&) const'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys34recsys_ranking_factorization_modelE[_ZTVN4turi6recsys34recsys_ranking_factorization_modelE]+0x58): undefined reference to `turi::recsys::recsys_model_base::load_version(turi::iarchive&, unsigned long)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys34recsys_ranking_factorization_modelE[_ZTVN4turi6recsys34recsys_ranking_factorization_modelE]+0x60): undefined reference to `turi::recsys::recsys_model_base::ml_model_base_clone()'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys34recsys_ranking_factorization_modelE[_ZTVN4turi6recsys34recsys_ranking_factorization_modelE]+0x68): undefined reference to `turi::recsys::recsys_factorization_model_base::init_options(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, turi::flexible_type, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, turi::flexible_type> > > const&)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys34recsys_ranking_factorization_modelE[_ZTVN4turi6recsys34recsys_ranking_factorization_modelE]+0x70): undefined reference to `turi::recsys::recsys_factorization_model_base::train[abi:cxx11](turi::v2::ml_data const&)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys34recsys_ranking_factorization_modelE[_ZTVN4turi6recsys34recsys_ranking_factorization_modelE]+0x78): undefined reference to `turi::recsys::recsys_factorization_model_base::train[abi:cxx11](turi::v2::ml_data const&, turi::v2::ml_data const&)'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys34recsys_ranking_factorization_modelE[_ZTVN4turi6recsys34recsys_ranking_factorization_modelE]+0x90): undefined reference to `turi::recsys::recsys_factorization_model_base::list_fields[abi:cxx11]() const'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys34recsys_ranking_factorization_modelE[_ZTVN4turi6recsys34recsys_ranking_factorization_modelE]+0x98): undefined reference to `turi::recsys::recsys_factorization_model_base::get(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys34recsys_ranking_factorization_modelE[_ZTVN4turi6recsys34recsys_ranking_factorization_modelE]+0xa0): undefined reference to `turi::recsys::recsys_factorization_model_base::predict(turi::v2::ml_data const&) const'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys34recsys_ranking_factorization_modelE[_ZTVN4turi6recsys34recsys_ranking_factorization_modelE]+0xa8): undefined reference to `turi::recsys::recsys_factorization_model_base::get_similar_users(std::shared_ptr<turi::sarray<turi::flexible_type> >, unsigned long) const'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys34recsys_ranking_factorization_modelE[_ZTVN4turi6recsys34recsys_ranking_factorization_modelE]+0xb0): undefined reference to `turi::recsys::recsys_factorization_model_base::get_similar_items(std::shared_ptr<turi::sarray<turi::flexible_type> >, unsigned long) const'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys34recsys_ranking_factorization_modelE[_ZTVN4turi6recsys34recsys_ranking_factorization_modelE]+0xb8): undefined reference to `turi::recsys::recsys_factorization_model_base::get_item_similarity_scores(unsigned long, std::vector<std::pair<unsigned long, double>, std::allocator<std::pair<unsigned long, double> > >&) const'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys34recsys_ranking_factorization_modelE[_ZTVN4turi6recsys34recsys_ranking_factorization_modelE]+0xc0): undefined reference to `turi::recsys::recsys_model_base::get_item_intersection_info(turi::sframe const&) const'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys34recsys_ranking_factorization_modelE[_ZTVN4turi6recsys34recsys_ranking_factorization_modelE]+0xc8): undefined reference to `turi::recsys::recsys_factorization_model_base::score_all_items(std::vector<std::pair<unsigned long, double>, std::allocator<std::pair<unsigned long, double> > >&, std::vector<turi::v2::ml_data_entry, std::allocator<turi::v2::ml_data_entry> > const&, unsigned long, std::vector<std::pair<unsigned long, double>, std::allocator<std::pair<unsigned long, double> > > const&, std::vector<std::pair<unsigned long, double>, std::allocator<std::pair<unsigned long, double> > > const&, std::vector<turi::v2::ml_data_row_reference, std::allocator<turi::v2::ml_data_row_reference> > const&, std::shared_ptr<turi::v2::ml_data_side_features> const&) const'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys34recsys_ranking_factorization_modelE[_ZTVN4turi6recsys34recsys_ranking_factorization_modelE]+0xe8): undefined reference to `turi::recsys::recsys_factorization_model_base::internal_save(turi::oarchive&) const'
../turicreate/release/src/unity/libunity.a(registration.cpp.o):(.data.rel.ro._ZTVN4turi6recsys34recsys_ranking_factorization_modelE[_ZTVN4turi6recsys34recsys_ranking_factorization_modelE]+0xf0): undefined reference to `turi::recsys::recsys_factorization_model_base::internal_load(turi::iarchive&, unsigned long)'
/tmp/ccHq1RQU.o: In function `main':
model_predict.cpp:(.text+0x97d): undefined reference to `turi::unity_global::unity_global(turi::toolkit_function_registry*, turi::toolkit_class_registry*)'
model_predict.cpp:(.text+0x9c7): undefined reference to `turi::unity_global::load_model(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
model_predict.cpp:(.text+0x150c): undefined reference to `turi::operator<<(std::ostream&, turi::gl_sframe const&)'
model_predict.cpp:(.text+0x158e): undefined reference to `turi::unity_global::~unity_global()'
model_predict.cpp:(.text+0x1938): undefined reference to `turi::unity_global::~unity_global()'
/tmp/ccHq1RQU.o: In function `turi::gl_vector_internal::_vstruct<char>* turi::gl_vector_internal::construct<char, char const*>(char const* const&, char const* const&, std::enable_if<std::is_convertible<std::iterator_traits<char const*>::value_type, char>::value, void>::type*)::{lambda()#1}::operator()() const::{lambda()#1}::operator()() const':
model_predict.cpp:(.text+0x1a2b): undefined reference to `global_logger()'
/tmp/ccHq1RQU.o: In function `turi::gl_vector_internal::_vstruct<char>* turi::gl_vector_internal::construct<char, char const*>(char const* const&, char const* const&, std::enable_if<std::is_convertible<std::iterator_traits<char const*>::value_type, char>::value, void>::type*)::{lambda()#1}::operator()() const':
model_predict.cpp:(.text+0x1bbb): undefined reference to `global_logger()'
model_predict.cpp:(.text+0x1c2e): undefined reference to `__print_back_trace()'
/tmp/ccHq1RQU.o: In function `unsigned long turi::gl_vector_internal::_round_up_to_stride<char>(unsigned long)::{lambda()#1}::operator()() const::{lambda()#1}::operator()() const':
model_predict.cpp:(.text+0x2169): undefined reference to `global_logger()'
/tmp/ccHq1RQU.o: In function `unsigned long turi::gl_vector_internal::_round_up_to_stride<char>(unsigned long)::{lambda()#1}::operator()() const':
model_predict.cpp:(.text+0x2379): undefined reference to `global_logger()'
model_predict.cpp:(.text+0x23ec): undefined reference to `__print_back_trace()'
/tmp/ccHq1RQU.o: In function `char* turi::gl_vector_internal::_insert_with_overlapping_source_iterator<char>(turi::gl_vector_internal::_vstruct<char>*&, char const*, char const*, char const*)::{lambda()#1}::operator()() const::{lambda()#1}::operator()() const':
model_predict.cpp:(.text+0x2725): undefined reference to `global_logger()'
/tmp/ccHq1RQU.o: In function `char* turi::gl_vector_internal::_insert_with_overlapping_source_iterator<char>(turi::gl_vector_internal::_vstruct<char>*&, char const*, char const*, char const*)::{lambda()#1}::operator()() const':
model_predict.cpp:(.text+0x28b5): undefined reference to `global_logger()'
model_predict.cpp:(.text+0x2928): undefined reference to `__print_back_trace()'
/tmp/ccHq1RQU.o: In function `__static_initialization_and_destruction_0(int, int)':
model_predict.cpp:(.text+0x2f8c): undefined reference to `boost::system::generic_category()'
model_predict.cpp:(.text+0x2f98): undefined reference to `boost::system::generic_category()'
model_predict.cpp:(.text+0x2fa4): undefined reference to `boost::system::system_category()'
/tmp/ccHq1RQU.o: In function `file_logger::operator<<(char const*)':
model_predict.cpp:(.text._ZN11file_loggerlsEPKc[_ZN11file_loggerlsEPKc]+0x1d): undefined reference to `pthread_getspecific'
/tmp/ccHq1RQU.o: In function `file_logger::operator<<(std::ostream& (*)(std::ostream&))':
model_predict.cpp:(.text._ZN11file_loggerlsEPFRSoS0_E[_ZN11file_loggerlsEPFRSoS0_E]+0x1d): undefined reference to `pthread_getspecific'
model_predict.cpp:(.text._ZN11file_loggerlsEPFRSoS0_E[_ZN11file_loggerlsEPFRSoS0_E]+0x8c): undefined reference to `__print_back_trace()'
/tmp/ccHq1RQU.o: In function `file_logger::stream_flush()':
model_predict.cpp:(.text._ZN11file_logger12stream_flushEv[_ZN11file_logger12stream_flushEv]+0x32): undefined reference to `pthread_getspecific'
model_predict.cpp:(.text._ZN11file_logger12stream_flushEv[_ZN11file_logger12stream_flushEv]+0xb4): undefined reference to `file_logger::_lograw(int, char const*, int)'
/tmp/ccHq1RQU.o: In function `log_dispatch<true>::exec(int, char const*, char const*, int, char const*, ...)':
model_predict.cpp:(.text._ZN12log_dispatchILb1EE4execEiPKcS2_iS2_z[_ZN12log_dispatchILb1EE4execEiPKcS2_iS2_z]+0x97): undefined reference to `global_logger()'
model_predict.cpp:(.text._ZN12log_dispatchILb1EE4execEiPKcS2_iS2_z[_ZN12log_dispatchILb1EE4execEiPKcS2_iS2_z]+0xd7): undefined reference to `file_logger::_log(int, char const*, char const*, int, char const*, __va_list_tag*)'
model_predict.cpp:(.text._ZN12log_dispatchILb1EE4execEiPKcS2_iS2_z[_ZN12log_dispatchILb1EE4execEiPKcS2_iS2_z]+0xe9): undefined reference to `__print_back_trace()'
/tmp/ccHq1RQU.o: In function `log_stream_dispatch<true>::exec(int, char const*, char const*, int, bool)':
model_predict.cpp:(.text._ZN19log_stream_dispatchILb1EE4execEiPKcS2_ib[_ZN19log_stream_dispatchILb1EE4execEiPKcS2_ib]+0x22): undefined reference to `global_logger()'
model_predict.cpp:(.text._ZN19log_stream_dispatchILb1EE4execEiPKcS2_ib[_ZN19log_stream_dispatchILb1EE4execEiPKcS2_ib]+0x40): undefined reference to `file_logger::start_stream(int, char const*, char const*, int, bool)'
/tmp/ccHq1RQU.o: In function `turi::flex_date_time::set_microsecond(int)::{lambda()#1}::operator()() const':
model_predict.cpp:(.text._ZZN4turi14flex_date_time15set_microsecondEiENKUlvE_clEv[_ZZN4turi14flex_date_time15set_microsecondEiENKUlvE_clEv]+0x1f): undefined reference to `global_logger()'
/tmp/ccHq1RQU.o: In function `turi::flex_date_time::set_time_zone_offset(int)::{lambda()#1}::operator()() const':
model_predict.cpp:(.text._ZZN4turi14flex_date_time20set_time_zone_offsetEiENKUlvE_clEv[_ZZN4turi14flex_date_time20set_time_zone_offsetEiENKUlvE_clEv]+0x1f): undefined reference to `global_logger()'
/tmp/ccHq1RQU.o: In function `turi::flex_date_time const& turi::flexible_type::get<turi::flex_date_time>() const':
model_predict.cpp:(.text._ZNK4turi13flexible_type3getINS_14flex_date_timeEEERKT_v[_ZNK4turi13flexible_type3getINS_14flex_date_timeEEERKT_v]+0x23): undefined reference to `turi::flexible_type_fail(bool)'
/tmp/ccHq1RQU.o: In function `long& turi::flexible_type::mutable_get<long>()':
model_predict.cpp:(.text._ZN4turi13flexible_type11mutable_getIlEERT_v[_ZN4turi13flexible_type11mutable_getIlEERT_v]+0x23): undefined reference to `turi::flexible_type_fail(bool)'
/tmp/ccHq1RQU.o: In function `long const& turi::flexible_type::get<long>() const':
model_predict.cpp:(.text._ZNK4turi13flexible_type3getIlEERKT_v[_ZNK4turi13flexible_type3getIlEERKT_v]+0x23): undefined reference to `turi::flexible_type_fail(bool)'
/tmp/ccHq1RQU.o: In function `double const& turi::flexible_type::get<double>() const':
model_predict.cpp:(.text._ZNK4turi13flexible_type3getIdEERKT_v[_ZNK4turi13flexible_type3getIdEERKT_v]+0x23): undefined reference to `turi::flexible_type_fail(bool)'
/tmp/ccHq1RQU.o: In function `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >& turi::flexible_type::mutable_get<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >()':
model_predict.cpp:(.text._ZN4turi13flexible_type11mutable_getINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERT_v[_ZN4turi13flexible_type11mutable_getINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERT_v]+0x23): undefined reference to `turi::flexible_type_fail(bool)'
/tmp/ccHq1RQU.o:model_predict.cpp:(.text._ZNK4turi13flexible_type3getINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERKT_v[_ZNK4turi13flexible_type3getINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERKT_v]+0x23): more undefined references to `turi::flexible_type_fail(bool)' follow
/tmp/ccHq1RQU.o: In function `turi::mutex::mutex()::{lambda()#1}::operator()() const':
model_predict.cpp:(.text._ZZN4turi5mutexC4EvENKUlvE_clEv[_ZZN4turi5mutexC4EvENKUlvE_clEv]+0xd): undefined reference to `global_logger()'
model_predict.cpp:(.text._ZZN4turi5mutexC4EvENKUlvE_clEv[_ZZN4turi5mutexC4EvENKUlvE_clEv]+0x9a): undefined reference to `__print_back_trace()'
/tmp/ccHq1RQU.o: In function `turi::mutex::~mutex()':
model_predict.cpp:(.text._ZN4turi5mutexD2Ev[_ZN4turi5mutexD5Ev]+0x2f): undefined reference to `global_logger()'
model_predict.cpp:(.text._ZN4turi5mutexD2Ev[_ZN4turi5mutexD5Ev]+0xb6): undefined reference to `__print_back_trace()'
/tmp/ccHq1RQU.o: In function `boost::system::error_category::std_category::equivalent(int, std::error_condition const&) const':
model_predict.cpp:(.text._ZNK5boost6system14error_category12std_category10equivalentEiRKSt15error_condition[_ZNK5boost6system14error_category12std_category10equivalentEiRKSt15error_condition]+0xb8): undefined reference to `boost::system::generic_category()'
model_predict.cpp:(.text._ZNK5boost6system14error_category12std_category10equivalentEiRKSt15error_condition[_ZNK5boost6system14error_category12std_category10equivalentEiRKSt15error_condition]+0xf3): undefined reference to `boost::system::generic_category()'
/tmp/ccHq1RQU.o: In function `boost::system::error_category::std_category::equivalent(std::error_code const&, int) const':
model_predict.cpp:(.text._ZNK5boost6system14error_category12std_category10equivalentERKSt10error_codei[_ZNK5boost6system14error_category12std_category10equivalentERKSt10error_codei]+0xb8): undefined reference to `boost::system::generic_category()'
model_predict.cpp:(.text._ZNK5boost6system14error_category12std_category10equivalentERKSt10error_codei[_ZNK5boost6system14error_category12std_category10equivalentERKSt10error_codei]+0xf3): undefined reference to `boost::system::generic_category()'
model_predict.cpp:(.text._ZNK5boost6system14error_category12std_category10equivalentERKSt10error_codei[_ZNK5boost6system14error_category12std_category10equivalentERKSt10error_codei]+0x1ce): undefined reference to `boost::system::generic_category()'
/tmp/ccHq1RQU.o: In function `turi::gl_sframe::~gl_sframe()':
model_predict.cpp:(.text._ZN4turi9gl_sframeD2Ev[_ZN4turi9gl_sframeD5Ev]+0xd): undefined reference to `vtable for turi::gl_sframe'
/tmp/ccHq1RQU.o: In function `file_logger& file_logger::operator<< <std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)':
model_predict.cpp:(.text._ZN11file_loggerlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS_T_[_ZN11file_loggerlsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS_T_]+0x1d): undefined reference to `pthread_getspecific'
/tmp/ccHq1RQU.o: In function `decltype ({parm#1}(turi::flexible_type::prototype_flex_int)) turi::flexible_type::apply_visitor<turi::flexible_type_impl::get_string_visitor>(turi::flexible_type_impl::get_string_visitor) const':
model_predict.cpp:(.text._ZNK4turi13flexible_type13apply_visitorINS_18flexible_type_impl18get_string_visitorEEEDTclfp_L_ZNS0_18prototype_flex_intEEEET_[_ZNK4turi13flexible_type13apply_visitorINS_18flexible_type_impl18get_string_visitorEEEDTclfp_L_ZNS0_18prototype_flex_intEEEET_]+0xd1): undefined reference to `turi::flexible_type_impl::get_string_visitor::operator()[abi:cxx11](std::vector<double, std::allocator<double> > const&) const'
model_predict.cpp:(.text._ZNK4turi13flexible_type13apply_visitorINS_18flexible_type_impl18get_string_visitorEEEDTclfp_L_ZNS0_18prototype_flex_intEEEET_[_ZNK4turi13flexible_type13apply_visitorINS_18flexible_type_impl18get_string_visitorEEEDTclfp_L_ZNS0_18prototype_flex_intEEEET_]+0xf5): undefined reference to `turi::flexible_type_impl::get_string_visitor::operator()[abi:cxx11](turi::flexible_type_impl::ndarray<double> const&) const'
model_predict.cpp:(.text._ZNK4turi13flexible_type13apply_visitorINS_18flexible_type_impl18get_string_visitorEEEDTclfp_L_ZNS0_18prototype_flex_intEEEET_[_ZNK4turi13flexible_type13apply_visitorINS_18flexible_type_impl18get_string_visitorEEEDTclfp_L_ZNS0_18prototype_flex_intEEEET_]+0x119): undefined reference to `turi::flexible_type_impl::get_string_visitor::operator()[abi:cxx11](std::vector<turi::flexible_type, std::allocator<turi::flexible_type> > const&) const'
model_predict.cpp:(.text._ZNK4turi13flexible_type13apply_visitorINS_18flexible_type_impl18get_string_visitorEEEDTclfp_L_ZNS0_18prototype_flex_intEEEET_[_ZNK4turi13flexible_type13apply_visitorINS_18flexible_type_impl18get_string_visitorEEEDTclfp_L_ZNS0_18prototype_flex_intEEEET_]+0x13d): undefined reference to `turi::flexible_type_impl::get_string_visitor::operator()[abi:cxx11](std::vector<std::pair<turi::flexible_type, turi::flexible_type>, std::allocator<std::pair<turi::flexible_type, turi::flexible_type> > > const&) const'
model_predict.cpp:(.text._ZNK4turi13flexible_type13apply_visitorINS_18flexible_type_impl18get_string_visitorEEEDTclfp_L_ZNS0_18prototype_flex_intEEEET_[_ZNK4turi13flexible_type13apply_visitorINS_18flexible_type_impl18get_string_visitorEEEDTclfp_L_ZNS0_18prototype_flex_intEEEET_]+0x15e): undefined reference to `turi::flexible_type_impl::get_string_visitor::operator()[abi:cxx11](turi::flex_date_time const&) const'
model_predict.cpp:(.text._ZNK4turi13flexible_type13apply_visitorINS_18flexible_type_impl18get_string_visitorEEEDTclfp_L_ZNS0_18prototype_flex_intEEEET_[_ZNK4turi13flexible_type13apply_visitorINS_18flexible_type_impl18get_string_visitorEEEDTclfp_L_ZNS0_18prototype_flex_intEEEET_]+0x17f): undefined reference to `turi::flexible_type_impl::get_string_visitor::operator()[abi:cxx11](turi::image_type const&) const'
model_predict.cpp:(.text._ZNK4turi13flexible_type13apply_visitorINS_18flexible_type_impl18get_string_visitorEEEDTclfp_L_ZNS0_18prototype_flex_intEEEET_[_ZNK4turi13flexible_type13apply_visitorINS_18flexible_type_impl18get_string_visitorEEEDTclfp_L_ZNS0_18prototype_flex_intEEEET_]+0x1a6): undefined reference to `turi::flexible_type_fail(bool)'
/tmp/ccHq1RQU.o: In function `std::shared_ptr<turi::supervised::xgboost::boosted_trees_classifier> std::dynamic_pointer_cast<turi::supervised::xgboost::boosted_trees_classifier, turi::model_base>(std::shared_ptr<turi::model_base> const&)':
model_predict.cpp:(.text._ZSt20dynamic_pointer_castIN4turi10supervised7xgboost24boosted_trees_classifierENS0_10model_baseEESt10shared_ptrIT_ERKS5_IT0_E[_ZSt20dynamic_pointer_castIN4turi10supervised7xgboost24boosted_trees_classifierENS0_10model_baseEESt10shared_ptrIT_ERKS5_IT0_E]+0x2e): undefined reference to `typeinfo for turi::supervised::xgboost::boosted_trees_classifier'
/tmp/ccHq1RQU.o: In function `turi::flexible_type_impl::ndarray<double>::ndarray(std::shared_ptr<std::vector<double, std::allocator<double> > > const&, std::vector<unsigned long, std::allocator<unsigned long> > const&, std::vector<unsigned long, std::allocator<unsigned long> > const&, unsigned long)::{lambda()#1}::operator()() const':
model_predict.cpp:(.text._ZZN4turi18flexible_type_impl7ndarrayIdEC4ERKSt10shared_ptrISt6vectorIdSaIdEEERKS4_ImSaImEESD_mENKUlvE_clEv[_ZZN4turi18flexible_type_impl7ndarrayIdEC4ERKSt10shared_ptrISt6vectorIdSaIdEEERKS4_ImSaImEESD_mENKUlvE_clEv]+0x99): undefined reference to `global_logger()'
model_predict.cpp:(.text._ZZN4turi18flexible_type_impl7ndarrayIdEC4ERKSt10shared_ptrISt6vectorIdSaIdEEERKS4_ImSaImEESD_mENKUlvE_clEv[_ZZN4turi18flexible_type_impl7ndarrayIdEC4ERKSt10shared_ptrISt6vectorIdSaIdEEERKS4_ImSaImEESD_mENKUlvE_clEv]+0x10c): undefined reference to `__print_back_trace()'
/tmp/ccHq1RQU.o: In function `turi::flexible_type_impl::ndarray<double>::ndarray(std::shared_ptr<std::vector<double, std::allocator<double> > > const&, std::vector<unsigned long, std::allocator<unsigned long> > const&, std::vector<unsigned long, std::allocator<unsigned long> > const&, unsigned long)::{lambda()#1}::operator()() const::{lambda()#1}::operator()() const':
model_predict.cpp:(.text._ZZZN4turi18flexible_type_impl7ndarrayIdEC4ERKSt10shared_ptrISt6vectorIdSaIdEEERKS4_ImSaImEESD_mENKUlvE_clEvENKUlvE_clEv[_ZZZN4turi18flexible_type_impl7ndarrayIdEC4ERKSt10shared_ptrISt6vectorIdSaIdEEERKS4_ImSaImEESD_mENKUlvE_clEvENKUlvE_clEv]+0x1f): undefined reference to `global_logger()'
/tmp/ccHq1RQU.o: In function `turi::flexible_type_impl::ndarray<double>::ndarray(std::shared_ptr<std::vector<double, std::allocator<double> > > const&, std::vector<unsigned long, std::allocator<unsigned long> > const&, std::vector<unsigned long, std::allocator<unsigned long> > const&, unsigned long)::{lambda()#2}::operator()() const':
model_predict.cpp:(.text._ZZN4turi18flexible_type_impl7ndarrayIdEC4ERKSt10shared_ptrISt6vectorIdSaIdEEERKS4_ImSaImEESD_mENKUlvE0_clEv[_ZZN4turi18flexible_type_impl7ndarrayIdEC4ERKSt10shared_ptrISt6vectorIdSaIdEEERKS4_ImSaImEESD_mENKUlvE0_clEv]+0x99): undefined reference to `global_logger()'
model_predict.cpp:(.text._ZZN4turi18flexible_type_impl7ndarrayIdEC4ERKSt10shared_ptrISt6vectorIdSaIdEEERKS4_ImSaImEESD_mENKUlvE0_clEv[_ZZN4turi18flexible_type_impl7ndarrayIdEC4ERKSt10shared_ptrISt6vectorIdSaIdEEERKS4_ImSaImEESD_mENKUlvE0_clEv]+0x10c): undefined reference to `__print_back_trace()'
/tmp/ccHq1RQU.o: In function `turi::flexible_type_impl::ndarray<double>::ndarray(std::shared_ptr<std::vector<double, std::allocator<double> > > const&, std::vector<unsigned long, std::allocator<unsigned long> > const&, std::vector<unsigned long, std::allocator<unsigned long> > const&, unsigned long)::{lambda()#2}::operator()() const::{lambda()#1}::operator()() const':
model_predict.cpp:(.text._ZZZN4turi18flexible_type_impl7ndarrayIdEC4ERKSt10shared_ptrISt6vectorIdSaIdEEERKS4_ImSaImEESD_mENKUlvE0_clEvENKUlvE_clEv[_ZZZN4turi18flexible_type_impl7ndarrayIdEC4ERKSt10shared_ptrISt6vectorIdSaIdEEERKS4_ImSaImEESD_mENKUlvE0_clEvENKUlvE_clEv]+0x1f): undefined reference to `global_logger()'
/tmp/ccHq1RQU.o: In function `decltype ({parm#1}(turi::flexible_type::prototype_flex_int)) turi::flexible_type::apply_visitor<turi::flexible_type_impl::get_int_visitor>(turi::flexible_type_impl::get_int_visitor) const':
model_predict.cpp:(.text._ZNK4turi13flexible_type13apply_visitorINS_18flexible_type_impl15get_int_visitorEEEDTclfp_L_ZNS0_18prototype_flex_intEEEET_[_ZNK4turi13flexible_type13apply_visitorINS_18flexible_type_impl15get_int_visitorEEEDTclfp_L_ZNS0_18prototype_flex_intEEEET_]+0x232): undefined reference to `turi::flexible_type_fail(bool)'
/tmp/ccHq1RQU.o: In function `long turi::flexible_type_impl::get_int_visitor::operator()<std::vector<double, std::allocator<double> > >(std::vector<double, std::allocator<double> >) const':
model_predict.cpp:(.text._ZNK4turi18flexible_type_impl15get_int_visitorclISt6vectorIdSaIdEEEElT_[_ZNK4turi18flexible_type_impl15get_int_visitorclISt6vectorIdSaIdEEEElT_]+0x16): undefined reference to `turi::flexible_type_fail(bool)'
/tmp/ccHq1RQU.o: In function `long turi::flexible_type_impl::get_int_visitor::operator()<turi::flexible_type_impl::ndarray<double> >(turi::flexible_type_impl::ndarray<double>) const':
model_predict.cpp:(.text._ZNK4turi18flexible_type_impl15get_int_visitorclINS0_7ndarrayIdEEEElT_[_ZNK4turi18flexible_type_impl15get_int_visitorclINS0_7ndarrayIdEEEElT_]+0x16): undefined reference to `turi::flexible_type_fail(bool)'
/tmp/ccHq1RQU.o: In function `long turi::flexible_type_impl::get_int_visitor::operator()<std::vector<turi::flexible_type, std::allocator<turi::flexible_type> > >(std::vector<turi::flexible_type, std::allocator<turi::flexible_type> >) const':
https://github.com/apple/turicreate/issues/598
model_predict.cpp:(.text._ZNK4turi18flexible_type_impl15get_int_visitorclISt6vectorINS_13flexible_typeESaIS4_EEEElT_[_ZNK4turi18flexible_type_impl15get_int_visitorclISt6vectorINS_13flexible_typeESaIS4_EEEElT_]+0x16): undefined reference to `turi::flexible_type_fail(bool)'
/tmp/ccHq1RQU.o: In function `long turi::flexible_type_impl::get_int_visitor::operator()<std::vector<std::pair<turi::flexible_type, turi::flexible_type>, std::allocator<std::pair<turi::flexible_type, turi::flexible_type> > > >(std::vector<std::pair<turi::flexible_type, turi::flexible_type>, std::allocator<std::pair<turi::flexible_type, turi::flexible_type> > >) const':
model_predict.cpp:(.text._ZNK4turi18flexible_type_impl15get_int_visitorclISt6vectorISt4pairINS_13flexible_typeES5_ESaIS6_EEEElT_[_ZNK4turi18flexible_type_impl15get_int_visitorclISt6vectorISt4pairINS_13flexible_typeES5_ESaIS6_EEEElT_]+0x16): undefined reference to `turi::flexible_type_fail(bool)'
/tmp/ccHq1RQU.o:model_predict.cpp:(.text._ZNK4turi18flexible_type_impl15get_int_visitorclINS_10image_typeEEElT_[_ZNK4turi18flexible_type_impl15get_int_visitorclINS_10image_typeEEElT_]+0x16): more undefined references to `turi::flexible_type_fail(bool)' follow
/tmp/ccHq1RQU.o:(.rodata._ZTIN4turi10model_baseE[_ZTIN4turi10model_baseE]+0x10): undefined reference to `typeinfo for cppipc::ipc_object_base'
collect2: error: ld returned 1 exit status

I am not sure if I am missing something or if the error is in the code. While compiling I passed all the parameters as mentioned in the guide. my code model_predict.cpp was in the sibling directory so the compilation instruction that I passed was this

c++ -std=c++11 -I../turicreate/src -I../turicreate/src/platform -I../turicreate/deps/local/include -I../turicreate/src/external/armadillo/include -DHASH_FOR_UINT128_DEFINED -DHASH_FOR_INT128_DEFINED -L../turicreate/release/src/unity -lunity_shared model_predict.cpp ../turicreate/release/src/unity/libunity.a

Also, I am using the release v4.3.2.

gustavla commented 6 years ago

@hkundnani Sorry for the late response!

I'm not the expert on the C++ API, so I will make sure someone else takes a look at this too. My initial thought from the error message though is that you might need to link dynamically with boost by adding -lboost as an additional compile flag. Try that while I get someone else to take a look.

Thanks for trying out the C++ API and reporting your issue!

hkundnani commented 6 years ago

@gustavla Thank you for your response. I will try adding the additional compile flag -lboost and update my findings.

hoytak commented 6 years ago

Does it work if you leave off the libunity.a include at the end? unity_shared should have everything needed. If you add in libunity.a, then I think you'll have to add in a lot of other libXXXX.a files as well to get the missing symbols.

znation commented 6 years ago

@hkundnani I am not able to reproduce this issue; though I do initially get the error:

../turicreate/src/unity/toolkits/coreml_export/protobuf_include_internal.hpp:25:10: fatal error: 'google/protobuf/text_format.h' file not found

Which I am able to fix by adding to the command:

-I../turicreate/src/external

Would you mind sharing the commit/tag/version you're building with, and (if it has changed from the documentation) your model_predict.cpp as well? Thanks!

hkundnani commented 6 years ago

@znation I am working with release version 4.3.2 and I did run it by adding the command:

-I../turicreate/src/external 

but I still get the same error log I shared previously. I think my error is related to boost where I see these three errors message:

/home/castl/turicreate/deps/local/include/boost/system/error_code.hpp:206: undefined reference to `boost::system::generic_category()'
/home/castl/turicreate/deps/local/include/boost/system/error_code.hpp:208: undefined reference to `boost::system::generic_category()'
/home/castl/turicreate/deps/local/include/boost/system/error_code.hpp:210: undefined reference to `boost::system::system_category()' 

@hoytak When I leave off the libunity.a while compiling

c++ -std=c++11 -I../turicreate/src -I../turicreate/src/external -I../turicreate/src/platform -I../turicreate/deps/local/include -I../turicreate/src/external/armadillo/include -DHASH_FOR_UINT128_DEFINED -DHASH_FOR_INT128_DEFINED -L../turicreate/release/src/unity -lunity_shared model_predict.cpp

The three errors mentioned above are resolved I guess but I still get these errors:

/tmp/cc73V3tx.o: In function `boost::system::error_category::std_category::equivalent(int, std::error_condition const&) const':
model_predict.cpp:(.text._ZNK5boost6system14error_category12std_category10equivalentEiRKSt15error_condition[_ZNK5boost6system14error_category12std_category10equivalentEiRKSt15error_condition]+0xb8): undefined reference to `boost::system::generic_category()'
model_predict.cpp:(.text._ZNK5boost6system14error_category12std_category10equivalentEiRKSt15error_condition[_ZNK5boost6system14error_category12std_category10equivalentEiRKSt15error_condition]+0xf3): undefined reference to `boost::system::generic_category()'
/tmp/cc73V3tx.o: In function `boost::system::error_category::std_category::equivalent(std::error_code const&, int) const':
model_predict.cpp:(.text._ZNK5boost6system14error_category12std_category10equivalentERKSt10error_codei[_ZNK5boost6system14error_category12std_category10equivalentERKSt10error_codei]+0xb8): undefined reference to `boost::system::generic_category()'
model_predict.cpp:(.text._ZNK5boost6system14error_category12std_category10equivalentERKSt10error_codei[_ZNK5boost6system14error_category12std_category10equivalentERKSt10error_codei]+0xf3): undefined reference to `boost::system::generic_category()'
model_predict.cpp:(.text._ZNK5boost6system14error_category12std_category10equivalentERKSt10error_codei[_ZNK5boost6system14error_category12std_category10equivalentERKSt10error_codei]+0x1ce): undefined reference to `boost::system::generic_category()'

So in both cases I know it's realted to boost. I am just unable to figure out if I am missing some environement variable or I need to pass some additional flag while compiling which would remove these boost library errors.

@znation My model_predict.cpp file is same as shown in example of the documentation (https://apple.github.io/turicreate/docs/userguide/cpp.html). I have created mushroom.tcmodel and it's in the same directory as the model_predict.cpp. I am not sharing the model code here since that is also same from the documentation however, I am sharing the model_predict.cpp.

// standard C++ includes
#include <iostream>

// Turi Create includes
#include <logger/assertions.hpp>
#include <logger/logger.hpp>
#include <unity/lib/unity_global.hpp>
#include <unity/server/registration.hpp>
#include <unity/toolkits/supervised_learning/boosted_trees.hpp>

int main(int argc, char **argv) {
  // set up registry of named functions and models
  // used for rehydrating saved models
  auto fn_reg = turi::toolkit_function_registry();
  turi::register_functions(fn_reg);
  auto class_reg = turi::toolkit_class_registry();
  turi::register_models(class_reg);

  // create a global context
  auto global = turi::unity_global(&fn_reg, &class_reg);

  // load the model from disk
  auto loaded_model = global.load_model("mushroom.tcmodel");
  std::string name = turi::variant_get_value<turi::flexible_type>(loaded_model["model_name"]);
  std::cout << "Loaded model: " << name << std::endl;
  auto model = std::dynamic_pointer_cast<turi::supervised::xgboost::boosted_trees_classifier>(
    turi::variant_get_value<std::shared_ptr<turi::model_base>>(loaded_model["model"])
  );

  // set up input
  // (note: can do batch prediction by adding more than one row to rows)
  std::vector<turi::flexible_type> rows;
  turi::flex_dict row;
  row.push_back(std::make_pair("bruises?", "t"));
  row.push_back(std::make_pair("cap-color", "n"));
  row.push_back(std::make_pair("cap-shape", "x"));
  row.push_back(std::make_pair("cap-surface", "s"));
  row.push_back(std::make_pair("gill-attachment", "f"));
  row.push_back(std::make_pair("gill-color", "k"));
  row.push_back(std::make_pair("gill-size", "n"));
  row.push_back(std::make_pair("gill-spacing", "c"));
  row.push_back(std::make_pair("habitat", "u"));
  row.push_back(std::make_pair("odor", "p"));
  row.push_back(std::make_pair("population", "s"));
  row.push_back(std::make_pair("ring-number", "o"));
  row.push_back(std::make_pair("ring-type", "p"));
  row.push_back(std::make_pair("spore-print-color", "k"));
  row.push_back(std::make_pair("stalk-color-above-ring", "w"));
  row.push_back(std::make_pair("stalk-color-below-ring", "w"));
  row.push_back(std::make_pair("stalk-root", "e"));
  row.push_back(std::make_pair("stalk-shape", "e"));
  row.push_back(std::make_pair("stalk-surface-above-ring", "s"));
  row.push_back(std::make_pair("stalk-surface-below-ring", "s"));
  row.push_back(std::make_pair("veil-color", "w"));
  row.push_back(std::make_pair("veil-type", "p"));
  rows.push_back(row);

  // make prediction
  turi::gl_sframe result = model->fast_predict_topk(
      // input data - 1 row per prediction
      rows,

      // output type - see https://github.com/apple/turicreate/blob/3490286b27ff5d79cb90d09fe026d5671ce990c7/src/unity/toolkits/supervised_learning/supervised_learning.hpp#L47
      "probability",

      // missing value action - see https://github.com/apple/turicreate/blob/3490286b27ff5d79cb90d09fe026d5671ce990c7/src/ml_data/ml_data_column_modes.hpp#L27
      "error",

      // k (returns top k predictions) -- must be <= the number of classes
      2
  );
  std::string row_str = rows[0].to<std::string>(); // turn first row of input into a string
  std::cout << "Input to model: " << row_str << std::endl;
  std::cout << "Predicted: " << result << std::endl;
}

I also tried compiling by adding the flag -lboost:

c++ -std=c++11 -lboost -I../turicreate/src -I../turicreate/src/external -I../turicreate/src/platform -I../turicreate/deps/local/include -I../turicreate/src/external/armadillo/include -DHASH_FOR_UINT128_DEFINED -DHASH_FOR_INT128_DEFINED -L../turicreate/release/src/unity -lunity_shared model_predict.cpp ../turicreate/release/src/unity/libunity.a

but then I get this error:

In file included from ../turicreate/src/generics/type_trait_def.hpp:19:0,
                 from ../turicreate/src/generics/remove_member_pointer.hpp:30,
                 from ../turicreate/src/cppipc/client/issue.hpp:15,
                 from ../turicreate/src/cppipc/client/comm_client.hpp:21,
                 from ../turicreate/src/cppipc/client/object_proxy.hpp:10,
                 from ../turicreate/src/cppipc/magic_macros.hpp:9,
                 from ../turicreate/src/unity/lib/api/model_interface.hpp:13,
                 from ../turicreate/src/unity/lib/toolkit_class_base.hpp:13,
                 from ../turicreate/src/unity/lib/toolkit_class_macros.hpp:12,
                 from ../turicreate/src/unity/lib/visualization/plot.hpp:4,
                 from ../turicreate/src/unity/lib/api/unity_sarray_interface.hpp:13,
                 from ../turicreate/src/unity/lib/api/unity_global_interface.hpp:12,
                 from ../turicreate/src/unity/lib/unity_global.hpp:13,
                 from model_predict.cpp:7:
../turicreate/deps/local/include/boost/type_traits/detail/template_arity_spec.hpp:13:84: note: #pragma message: NOTE: Use of this header (template_arity_spec.hpp) is deprecated
 # pragma message("NOTE: Use of this header (template_arity_spec.hpp) is deprecated")
                                                                                    ^
In file included from ../turicreate/src/util/dense_bitset.hpp:16:0,
                 from ../turicreate/src/sframe/sarray_file_format_v2.hpp:16,
                 from ../turicreate/src/sframe/sarray.hpp:20,
                 from ../turicreate/src/sframe/sframe.hpp:14,
                 from ../turicreate/src/unity/lib/unity_base_types.hpp:10,
                 from ../turicreate/src/unity/lib/unity_global.hpp:9,
                 from model_predict.cpp:7:
../turicreate/src/util/bitops.hpp: In instantiation of ‘unsigned int turi::num_bits_on(T, typename std::enable_if<(((((((std::is_same<T, unsigned char>::value || std::is_same<T, short unsigned int>::value) || std::is_same<T, unsigned int>::value) || std::is_same<T, long unsigned int>::value) || std::is_same<T, unsigned int>::value) || std::is_same<T, long unsigned int>::value) || std::is_same<T, long long unsigned int>::value) || std::is_same<T, __int128 unsigned>::value)>::type*) [with T = long unsigned int; typename std::enable_if<(((((((std::is_same<T, unsigned char>::value || std::is_same<T, short unsigned int>::value) || std::is_same<T, unsigned int>::value) || std::is_same<T, long unsigned int>::value) || std::is_same<T, unsigned int>::value) || std::is_same<T, long unsigned int>::value) || std::is_same<T, long long unsigned int>::value) || std::is_same<T, __int128 unsigned>::value)>::type = void]’:
../turicreate/src/util/dense_bitset.hpp:177:57:   required from here
../turicreate/src/util/bitops.hpp:156:59: warning: right shift count >= width of type [-Wshift-count-overflow]
             + __builtin_popcountll((unsigned long long)(v >> 64)));
                                                           ^
../turicreate/src/util/bitops.hpp:162:10: warning: right shift count >= width of type [-Wshift-count-overflow]
       vt >>= bitsizeof(unsigned long long);
          ^
/usr/bin/ld: cannot find -lboost
collect2: error: ld returned 1 exit status

It can't find -lboost.

TobyRoseman commented 3 years ago

Is this still an issue?

TobyRoseman commented 3 years ago

I have not heard back here. I'm going to close this issue. Feel free to reopen if it's still an issue.