My program compiles and runs fine with MSVC but if I compile it with linux with an intel compiler it suddenly has linking problems:
undefined reference to Model::Model(boost::property_tree::basic_ptree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::shared_ptr<DEM::World>)
In think/guess my problem might have to do with an ambiguous function call. For some reason the shared_pointer argument in the constructor has an ambiguous call to memory as shown in the picture below, when I try to navigate to the source.:
The World object is just a normal object.
I don't understand why this call is ambiguous and how to solve it.
"undefined reference" is not the same as ambigous function call (if you're talking about overloaded functions). It means that the compilation unit (i.e. the .cpp file) containing that function hasn't been included in the link, or some macro or using namespace has changed the meaning of the function in the place where it's defined compared to the place it's used (yes this is like an overloaded function but like you've created an overload by accident).