GCC 3.2 Linker Problem with C, C++ and GNU Prolog code

Joseph Benden joe@adwriter.com
Fri Oct 11 06:05:00 GMT 2002


I'm having a problem linking together the three mentioned object files
above using GCC 3.2.  If I specify the --allow-multiple-definition flag
to the linker, the objects do indeed link and work; however, on GCC 2.96
(RedHat 7.3) it all links together fine.

I'm confused as to why, but don't like the fact that I must add the
above flag.  Also, it doesn't properly compile on 2.96 (RedHat 7.1).

The code uses a ton of STL containers (strings, vectors,) GNU Prolog,
expat, mysql, etc.

The errors messages which I'm receiving are:



prefork.o(.bss+0x0): multiple definition of 'last_read_line'
child.o(.bss+0x4): first defined here
prefork.o(.bss+0x4): multiple definition of 'last_read_col'
child.o(.bss+0x8): first defined here
prefork.o(.bss+0x8): multiple definition of 'byte_code'
child.o(.bss+0xc): first defined here
CEpilog.o(.bss+0x0): multiple definition of 'last_read_line'
child.o(.bss+0x4): first defined here

... and a couple more of the same above type errors ...

All of the object mentioned above are C++ objects.  There are no
complaints from the linker about libraries, C objects or GNU Prolog
objects.

I've looked at the assembly code generated, but can not figure out where
these above names are defined...  They're not in my code nor in the
header files of libraries I'm using...  Do these errors have something
to do with the STL?

I'm lost...  I've searched around, but can not figure this one out...

Thanks,
Joseph Benden, Sr., CCNA
Vice President of Information Technology
AdWriter, Inc.

Professional Member of the Association of Computing Machinery (www.ACM.org)
Professional Member of the Network and System Professionals Association (www.NaSPA.org)




More information about the Gcc-help mailing list