Obscure Errors

gcc-3.0/g++-3.0

/home/doug/src/ff1337/Environment.cc:23: undefined reference to `VTT for ffleet::Environment'
/home/doug/src/ff1337/Environment.cc:23: undefined reference to `VTT for ffleet::Environment'
/home/doug/src/ff1337/Environment.cc:23: undefined reference to `vtable for ffleet::Environment'
/home/doug/src/ff1337/Environment.cc:23: undefined reference to `vtable for ffleet::Environment'
/home/doug/src/ff1337/Environment.cc:23: undefined reference to `vtable for ffleet::Environment'
/home/doug/src/ff1337/Environment.cc:39: undefined reference to `VTT for ffleet::Environment'
The class ffleet::Environment has a virtual function (probably a destructor?) declared that is not actually implemented. For example:
class B {
public:
	void f()
	virtual ~B();
}

void B::f() {
	cout << "B::f() called." << endl;
}

void main() {
	B b;
}
The fix is to just add code for the destructor:
void B::~B() {
	cout << "B destructor." << endl;
}

todo: explain this: (can't return an auto_ptr to be asisgned.  Work around: change 

client.cc:
auto_ptr popPacket() {
	...
	return auto_ptr(p);
}
...
	auto_ptr result;
	result = popPacket();
...

change to:
void popPacket(auto_ptr &ret) {
	...
	ret.reset(p);
}

...
	auto_ptr result;
	popPacket(result);

			
client.cc:145: initialization of non-const reference type `class auto_ptr &'
client.cc:145: from rvalue of type `auto_ptr'
/usr/lib/gcc-lib/i386-linux/2.95.4/../../../../include/g++-3/memory:40: in passing argument 1 of `auto_ptr::operator =(auto_ptr &)'