Undefined Reference Errors?

I am having compilation linker issues and am looking for an explanation as to what is causing the error and how to fix it. The declaration of header files it is looking for all seem to be in the correct location and included properly, however I may be wrong.

We'd need to see the actual code for G4LElastic to be sure. It looks as though you've defined your class such that the compiler thinks it should have a vtable, i.e. you've declared some virtual methods, but that you haven't actually defined those methods in such a way as a vtable is created.

I think I've seen this before when you have an abstract or interface class that's missing a definition for the constructor and/or destructor. Could that be it?

Here is the class, I am unsure if that is the problem however as many if not all of the invoked classes seem to be returning undefined reference errors, perhaps it is something to do with the system or Makefile linker invocation?

which is a reference from the preferred fix in the stackoverflow comment suggested by @helios, it is suggested:

"Therefore, if you fail to define this particular method, the linker may complain about the lack of definitions for apparently unrelated symbols. Unfortunately, in order to improve this error message, it might be necessary to change the linker, and this can't always be done.

The solution is to ensure that all virtual methods that are not pure are defined. Note that a destructor must be defined even if it is declared pure-virtual"

By 'changing the linker' do they mean using a different version of the linker utility ld in my case?