help-gplusplus
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Compile time errors


From: Vineet
Subject: Compile time errors
Date: 31 Oct 2004 23:59:50 -0800

Hi All,

I am quite puzzled with this seemingly basic issue while compiling.
I have 2 cpp files - File BufMgr.cpp which includes 3 header files
BufMgr.h, lru.h and mru.h and the second cpp file TDD.cpp (contains
main) also includes these 3 files. The 3 header files have proper
#ifndef directives.

I compile the 2 cpps using
g++ -c BufMgr.cpp
g++ -c TDD.cpp

But when I try to link these files using
g++ -o TDD TDD.o BufMgr.o

I get the following errors

BufMgr.o(.text+0x0): In function `lru::lru[not-in-charge]()':
: multiple definition of `lru::lru[not-in-charge]()'
TDD.o(.text+0x0): first defined here
BufMgr.o(.text+0x110): In function `lru::lru[in-charge]()':
: multiple definition of `lru::lru[in-charge]()'
TDD.o(.text+0x110): first defined here
BufMgr.o(.text+0x220): In function `lru::lru[not-in-charge](int)':
: multiple definition of `lru::lru[not-in-charge](int)'
TDD.o(.text+0x220): first defined here
BufMgr.o(.text+0x360): In function `lru::lru[in-charge](int)':
: multiple definition of `lru::lru[in-charge](int)'
TDD.o(.text+0x360): first defined here
BufMgr.o(.text+0x4a0): In function `lru::replacePage(int)':
: multiple definition of `lru::replacePage(int)'
TDD.o(.text+0x4a0): first defined here
BufMgr.o(.text+0x8a0): In function `lru::updateStats(int)':
: multiple definition of `lru::updateStats(int)'
TDD.o(.text+0x8a0): first defined here
BufMgr.o(.text+0xc10): In function `mru::mru[not-in-charge]()':
: multiple definition of `mru::mru[not-in-charge]()'
TDD.o(.text+0xc10): first defined here
BufMgr.o(.text+0xd20): In function `mru::mru[in-charge]()':
: multiple definition of `mru::mru[in-charge]()'
TDD.o(.text+0xd20): first defined here
BufMgr.o(.text+0xe30): In function `mru::mru[not-in-charge](int)':
: multiple definition of `mru::mru[not-in-charge](int)'
TDD.o(.text+0xe30): first defined here
BufMgr.o(.text+0xf70): In function `mru::mru[in-charge](int)':
: multiple definition of `mru::mru[in-charge](int)'
TDD.o(.text+0xf70): first defined here
BufMgr.o(.text+0x10b0): In function `mru::replacePage(int)':
: multiple definition of `mru::replacePage(int)'
TDD.o(.text+0x10b0): first defined here
BufMgr.o(.text+0x1280): In function `mru::updateStats(int)':
: multiple definition of `mru::updateStats(int)'
TDD.o(.text+0x1280): first defined here
TDD.o(.text+0x2912): In function `main':
: undefined reference to `BufMgr<mru>::BufMgr[in-charge](char*, int,
int)'
TDD.o(.text+0x2942): In function `main':
: undefined reference to `BufMgr<mru>::BufMgr[in-charge](char*, int,
int)'
TDD.o(.text+0x2972): In function `main':
: undefined reference to `BufMgr<mru>::BufMgr[in-charge](char*, int,
int)'
TDD.o(.text+0x29a2): In function `main':
: undefined reference to `BufMgr<mru>::BufMgr[in-charge](char*, int,
int)'
TDD.o(.text+0x29d2): In function `main':
: undefined reference to `BufMgr<mru>::BufMgr[in-charge](char*, int,
int)'
TDD.o(.text+0x2a02): more undefined references to
`BufMgr<mru>::BufMgr[in-charge](char*, int, int)' follow
TDD.o(.text+0x2cd2): In function `main':
: undefined reference to `BufMgr<mru>::~BufMgr [in-charge]()'
TDD.o(.text+0x2d12): In function `main':
: undefined reference to `BufMgr<mru>::~BufMgr [in-charge]()'
TDD.o(.text+0x2d52): In function `main':
: undefined reference to `BufMgr<mru>::~BufMgr [in-charge]()'
TDD.o(.text+0x2d92): In function `main':
: undefined reference to `BufMgr<mru>::~BufMgr [in-charge]()'
TDD.o(.text+0x2dd2): In function `main':
: undefined reference to `BufMgr<mru>::~BufMgr [in-charge]()'
TDD.o(.text+0x2e12): more undefined references to
`BufMgr<mru>::~BufMgr [in-charge]()' follow
collect2: ld returned 1 exit status


Am I getting these errors because the 2 obj files have the same
symbols and the linker is finding 2 copies of those symbols? If yes,
how can I fix the includes. I am under the impression that the above
scenario (the way the files are included) is not uncommon and thats
making me even more curious.
If it helps, I am using version 3.2.3 of g++.

Any help will be greatly appreciated.

Thank you,
Vineet


reply via email to

[Prev in Thread] Current Thread [Next in Thread]