From: Peter V. <Pet...@es...> - 2002-09-11 20:09:38
|
> The build went smooth until linking vcl_test. At that time these symbols were > undefined: > > ___ls__H1Zd_R7ostreamRCt7complex1ZX01_RB0 > ___ls__H1Zf_R7ostreamRCt7complex1ZX01_RB0 These look like "operator<<" (ostream output) functions for complex<double> or so. Use the "c++filt" program which should come with your compiler to "demangle" those into C++ readable form. Your compiler probably needs explicit instantiation of these symbols. Normally, the following should suffice, somewhere in a .cxx file in the directory vcl/Templates: template ostream& operator<< (ostream&, vcl_complex<double> const&); The thing is that this statement is already in vcl/Templates/complex-instances.cxx so probably your compiler does not provide this particular templated function. In that case, and if all else fails, just define that function yourself, e.g.: template <class T> ostream& operator<< (ostream& os, vcl_complex<T> const& c) { return os << c.real() << '+' << c.imag() << 'j'; } or something similar. -- Peter. |