During a C++ script compilation, and doing exe building in AIX 5.3 using xlC compiler, I get the warning shown below:

ld: 0711-224 WARNING: Duplicate symbol: .NotNode::NotNode(BoolNode*)
ld: 0711-224 WARNING: Duplicate symbol: .UnaryNode::UnaryNode(BoolNode*)
ld: 0711-224 WARNING: Duplicate symbol: .OrNode::OrNode(BoolNode*,BoolNode*)
ld: 0711-224 WARNING: Duplicate symbol: .BinaryNode::BinaryNode(BoolNode*,BoolNo
de*)
ld: 0711-224 WARNING: Duplicate symbol: .AndNode::AndNode(BoolNode*,BoolNode*)
ld: 0711-224 WARNING: Duplicate symbol: .LeafNode::LeafNode(const char*)
ld: 0711-224 WARNING: Duplicate symbol: .RegularExpression::RegularExpression(co
nst char*)
ld: 0711-224 WARNING: Duplicate symbol: .RegularExpression::Init(const char*)
ld: 0711-224 WARNING: Duplicate symbol: .UnaryNode::~UnaryNode()
ld: 0711-224 WARNING: Duplicate symbol: .UnaryNode::Dump(ostream&,int)
ld: 0711-224 WARNING: Duplicate symbol: .UnaryNode::Visit(int,void*)
ld: 0711-224 WARNING: Duplicate symbol: .BinaryNode::~BinaryNode()
ld: 0711-224 WARNING: Duplicate symbol: .BinaryNode::Dump(ostream&,int)
ld: 0711-224 WARNING: Duplicate symbol: .BinaryNode::Visit(int,void*)
ld: 0711-224 WARNING: Duplicate symbol: .StringDictionaryIterator::operator void
*()

The warning does not cause any problems in building EXE or during validation but too many warnings for building each EXE is annoying.

Can someone please help me on how to set the flag in Makefile so that this warning can be removed and build is done without this?

>Is this valid?.. #pragma warning(disable:'warn code') ..:p
If you don't know what's causing a warning, you'd be a fool to disable it. I only know of one warning, on any compiler that I've ever used, where I'm 100% sure that it can be safely disabled. The correct response to a warning is understanding it and then fixing it.

>Is this valid?.. #pragma warning(disable:'warn code') ..:p
If you don't know what's causing a warning, you'd be a fool to disable it. I only know of one warning, on any compiler that I've ever used, where I'm 100% sure that it can be safely disabled. The correct response to a warning is understanding it and then fixing it.

yep..I just trying to set the flag not to understand it and fix it..Maybe u can fix it.:p

>I just trying to set the flag not to understand it and fix it
Clearly. That's why I felt the need to tell you that disabling a warning without understanding it is the height of stupidity. You're not stupid, are you?

The problem could be the result of several different things, and no one can tell you specifically without seeing the code. Another possible cause, besides the ones I already mentioned previously, is putting the implementation code in a header file. In that case it will be duplicated in every *.cpp file that uses the header file, thus the duplicate error message(s). The solution is to put the implementation code in one *.cpp file, leaving only the class declaration in the header file.

Assuming that the warnings are ok and they are arising out of so many different files, is there a way to supress them in the Makefile so that they dont pop up?

Probably -- I've already mentioned three things that you should look at. Could be one of them or none of them. But can't tell you if you don't post the code.

Assuming that the warnings are ok and they are arising out of so many different files, is there a way to supress them in the Makefile so that they dont pop up?

Consult the compiler documentation.

This article has been dead for over six months. Start a new discussion instead.