读书人

奇怪的 Duplicate symbol解决方案

发布时间: 2012-02-07 17:45:37 作者: rapoo

奇怪的 Duplicate symbol

C/C++ code
cat test.cpp#include <iostream>#include <unistd.h>#include <stdlib.h>#include <string>#include <stdio.h>using namespace std;class C_A{public:    void fun_a(){cout<<"C_A::fun_a!\n";}};extern void testFun();int main(){    testFun();    return 0;}

C/C++ code
cat test2.cpp#include <iostream>using namespace std;void testFun(){        cout<<"testFun()\n";}

C/C++ code
cat MakefileEXE=runOBJS=test.o test2.oDD=CC=xlCall:$(EXE)$(EXE):$(OBJS)        $(CC) -o $@ $(OBJS).SUFFIXES: .c .cpp .o.c.o:        $(CC) $(DD) -c $<.cpp.o:        $(CC) $(DD) -c $<.PHONY: cleanclean:        -rm *.o $(EXE)

编译时,提示
make
xlC -c test.cpp
xlC -c test2.cpp
xlC -o run test.o test2.o
ld: 0711-224 WARNING: Duplicate symbol: .std::basic_ostream<char,std::char_traits<char> >& std::operator<<<std::char_traits<char> >(std::basic_ostream<char,std::char_traits<char> >&,const char*)
ld: 0711-224 WARNING: Duplicate symbol: .std::char_traits<char>::length(const char*)
ld: 0711-224 WARNING: Duplicate symbol: .std::ios_base::width() const
ld: 0711-224 WARNING: Duplicate symbol: .std::basic_ostream<char,std::char_traits<char> >::sentry::sentry(std::basic_ostream<char,std::char_traits<char> >&)
ld: 0711-224 WARNING: Duplicate symbol: .std::basic_ostream<char,std::char_traits<char> >::sentry::operator bool() const
ld: 0711-224 WARNING: Duplicate symbol: .std::ios_base::flags() const
ld: 0711-224 WARNING: Duplicate symbol: .std::char_traits<char>::eof()
ld: 0711-224 WARNING: Duplicate symbol: .std::basic_ios<char,std::char_traits<char> >::rdbuf() const
ld: 0711-224 WARNING: Duplicate symbol: .std::basic_ios<char,std::char_traits<char> >::fill() const
ld: 0711-224 WARNING: Duplicate symbol: .std::basic_streambuf<char,std::char_traits<char> >::sputc(char)
ld: 0711-224 WARNING: Duplicate symbol: .std::char_traits<char>::eq_int_type(const int&,const int&)
ld: 0711-224 WARNING: Duplicate symbol: .std::basic_streambuf<char,std::char_traits<char> >::sputn(const char*,int)
ld: 0711-224 WARNING: Duplicate symbol: .std::ios_base::width(int)
ld: 0711-224 WARNING: Duplicate symbol: .std::basic_ios<char,std::char_traits<char> >::setstate(int,bool)
ld: 0711-224 WARNING: Duplicate symbol: .std::basic_ostream<char,std::char_traits<char> >::sentry::~sentry()
ld: 0711-224 WARNING: Duplicate symbol: .strlen(const char*)
ld: 0711-224 WARNING: Duplicate symbol: .std::ios_base::rdstate() const
ld: 0711-224 WARNING: Duplicate symbol: .std::basic_ios<char,std::char_traits<char> >::clear(int,bool)
ld: 0711-224 WARNING: Duplicate symbol: .std::ios_base::good() const
ld: 0711-224 WARNING: Duplicate symbol: .std::basic_ios<char,std::char_traits<char> >::tie() const
ld: 0711-224 WARNING: Duplicate symbol: .std::basic_ostream<char,std::char_traits<char> >::flush()
ld: 0711-224 WARNING: Duplicate symbol: .std::basic_ostream<char,std::char_traits<char> >::osfx()
ld: 0711-224 WARNING: Duplicate symbol: .std::basic_streambuf<char,std::char_traits<char> >::pptr() const
ld: 0711-224 WARNING: Duplicate symbol: .std::basic_streambuf<char,std::char_traits<char> >::epptr() const
ld: 0711-224 WARNING: Duplicate symbol: .std::basic_streambuf<char,std::char_traits<char> >::_Pninc()


ld: 0711-224 WARNING: Duplicate symbol: .std::char_traits<char>::to_int_type(const char&)
ld: 0711-224 WARNING: Duplicate symbol: .std::ios_base::fail() const
ld: 0711-224 WARNING: Duplicate symbol: .std::basic_streambuf<char,std::char_traits<char> >::pubsync()
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
Target "all" is up to date.

请各位大侠帮忙看下什么问题啊,多谢!

[解决办法]
我试了把CC=xlC改成CC=g++ 就可以成功编译啊

读书人网 >UNIXLINUX

热点推荐