In LHCb we use a version of HepMC as taken from the original author. In Geant4 the version used is tat of CLHEP where additional methods are defined. Such methods are used in Geant4 code. Since we compile with the granular CLHEP library when we build the full simulation application (Generators+Geant4) we link only with the original HepMC: this give rise to undefined symbols. We do not use the facility of Geant4 to read in HepMC directly, since we pass ourselves the primary event, so we do not need this facility. It would be useful to be able to switch off the use (i.e. compilation) of HepMC in Geant4, this is already done when compiling on window where the WIN32 flag encapsulate the use HepMC, turning it off.
When LHC requested the support of HepMC interface, it was agreed that we would support it as long as HepMC is centrally and uniquely maintained by CLHEP. Given it is not the case now, we should think about dropping HepMC interface from our distribution. I will discuss this at the coming TSB.