64-bit linker error on 10.4.8
Hello,
I have been building a mixed C++/Fortran package in 64-bit mode using GCC 4.0.1 (build 5367) packaged with the latest version of XCode and Absoft ProFortran (F95 compiler) 9.2. It complains (and never has before in various 32-bit incarnations) about the following:
"ld64-62.1 failed: duplicate symbol IBuffer::~IBuffer()in /Home/fparnold/progs/qchem/ccman/ccman.a(ibuffers.o) and /Home/fparnold/progs/qchem/ccman/ccman.a(ibuffers.o)"
Any suggestions on how to fix this? The offending routines are attached. As noted before, this builds correctly using XLF/XLC (32-bit), Intel/AMD (64 or 32-bit), or large machines. The routines in question haven't changed since 2001.
Thanks.
ibuffers.C
========
// This may look like C code, but it is really -*- C++ -*-
/*!
\file ibuffers.C
\brief This files contains base abstract classes for managing OEI and TEI.
\ingroup (GENAI)
AIK, 1997.
*/
#include "ibuffers.h"
IBuffer::IBuffer(int dim) : ioffset(dim)
{
ioffset.Set();
}
IBuffer::~IBuffer() {}
void IBuffer::SetOffset(const IndexType& indx_type)
{
for(int i=0; i
}
========
ibuffers.h
========
// This may look like C code, but it is really -*- C++ -*-
#ifndef _ibuffers_h
#define _ibuffers_h
/*!
\file ibuffers.h
\brief This files contains base abstract classes for managing OEI and TEI.
\ingroup (GENAI)
Virtual functions must be defined elsewherefor each ab-initio platform.
AIK, 1999.
*/
#include "buffer.h"
#include "mol_orb_info.h"
/*!
\brief Abstract integral buffer class.
\ingroup (GENAI)
*/
class IBuffer : public Buffer
{
//The next line crashes on the alpha
// IBuffer& operator=(const IBuffer);
protected:
Index ioffset;
public:
//! dim is 2 for OEI and 4 for ASTE
// IBuffer::~IBuffer() {}
IBuffer(int dim);
virtual ~IBuffer();
//! Used by OEI & TEI only
void SetOffset(const IndexType& indx_type);
//! For TPDM, void for OEI & TEI
virtual void WriteBuffer()=0;
};
#endif


