LAM/MPI logo

LAM/MPI General User's Mailing List Archives

  |   Home   |   Download   |   Documentation   |   FAQ   |   all just in this list

From: Viveka Vivekanandan (viveka_rt_at_[hidden])
Date: 2003-05-21 18:30:06


Hi,

I hope you will help me out of this problem. I am using KCC compiler version 4.0f. I have written a main program in mpitest1.cpp file. This main program needs two libraries util & mpipp. I can compile these two libraries using "make", but it fails when I rty to link them.

I do not know what is wrong, my guess is that from the output (please see the output below), I can see that it could not find the STD libary (std::flush, std::partial_sum, std::vector<> , std::deque etc.) and also the KCC library (`__kai::rb_tree_node_base *__kai::rb_tree<T1, T2, N3> etc.)

May be I am wrong. Any suggestions are welcome. Please let me know what we are missing. Please note that in the output I leave a blank space in between the error messages in order to read the error messages easily.

Following is the command I used to produce an executable:

>make driver_mpitest1.exe

When I did the above command I got the following output:

/bin/sh ../../../libtool --mode=link /data/zion/intersect/local_linux/KCCLIB/bin/mpiCC  -g -I . -I .. -I ../../../Intersect/src -I ../../../Prototype/src -I ../../../LoadBalance/src -I ../../../IWel/src -I ../../../Eos/src -I ../../../Keyword/src -L/data/zion/intersect/local_linux/KCCLIB/lib/ -o driver_mpitest1.exe  mpitest1.o ../mpipp/libmpipp.a ../util/libutil.a -lm
/data/zion/intersect/local_linux/KCCLIB/bin/mpiCC -g -I . -I .. -I ../../../Intersect/src -I ../../../Prototype/src -I ../../../LoadBalance/src -I ../../../IWel/src -I ../../../Eos/src -I ../../../Keyword/src -o driver_mpitest1.exe mpitest1.o  -L/data/zion/intersect/local_linux/KCCLIB/lib/ ../mpipp/libmpipp.a ../util/libutil.a -lm
../mpipp/libmpipp.a(comm.o): In function `mpi::Comm::pause( const(std::basic_string<char, std::char_traits<char>, std::allocator<char>> const &))':
/users/vtil/zz/kai_support/Intersect/src/mpipp/comm.cpp:163: undefined reference to `std::basic_ostream<T1, T2> &std::flush<T1, T2>(std::basic_ostream<T1, T2> &) [with T1=char, T2=std::char_traits<char>]'


../mpipp/libmpipp.a(comm.o): In function `mpi::CommWorld::__ct( (int &, char **))':
/users/vtil/zz/kai_support/Intersect/src/mpipp/comm.cpp:205: undefined reference to `std::basic_ostream<T1, T2> &std::flush<T1, T2>(std::basic_ostream<T1, T2> &) [with T1=char, T2=std::char_traits<char>]'


../mpipp/libmpipp.a(srinfo.o): In function `mpi::VDataInfo::init_displs( (void))':
/users/vtil/zz/kai_support/Intersect/src/mpipp/srinfo.cpp:217: undefined reference to `T2 std::partial_sum<T1, T2>(T1, T1, T2) [with T1=int *, T2=int *]'


../mpipp/libmpipp.a(utils.o): In function `T2 &std::map<T1, T2, T3, T4>::operator [](const __kai::map_base<T1, T2, T3, T4>::key_type &) [with T1=int, T2=std::basic_string<char, std::char_traits<char>, std::allocator<char>>, T3=std::less<int>, T4=std::allocator<std::pair<const int, std::basic_string<char, std::char_traits<char>, std::allocator<char>>>>]':
/vend/KCC/KCC_BASE/include/map:274: undefined reference to `__kai::rb_tree_node_base *__kai::rb_tree<T1, T2, N3>::__modify(const T1 &, bool *, __kai::rb_tree_base::modify_mode) [with T1=int, T2=std::less<int>, N3=(unsigned int)16]'


../mpipp/libmpipp.a(utils.o): In function `__kai::map_base<T1, T2, T3, T4>::map_base<int, std::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::less<int>, std::allocator<std::pair<const int, std::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>(const T3 &) [with T1=int, T2=std::basic_string<char, std::char_traits<char>, std::allocator<char>>, T3=std::less<int>, T4=std::allocator<std::pair<const int, std::basic_string<char, std::char_traits<char>, std::allocator<char>>>>]':
/vend/KCC/KCC_BASE/include/map:99: undefined reference to `virtual function table for __kai::map_base<int, std::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::less<int>, std::allocator<std::pair<const int, std::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>'


../mpipp/libmpipp.a(utils.o): In function `__kai::map_base<T1, T2, T3, T4>::~map_base<int, std::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::less<int>, std::allocator<std::pair<const int, std::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>() [with T1=int, T2=std::basic_string<char, std::char_traits<char>, std::allocator<char>>, T3=std::less<int>, T4=std::allocator<std::pair<const int, std::basic_string<char, std::char_traits<char>, std::allocator<char>>>>]':
/vend/KCC/KCC_BASE/include/map:122: undefined reference to `virtual function table for __kai::map_base<int, std::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::less<int>, std::allocator<std::pair<const int, std::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>'


../mpipp/libmpipp.a(utils.o): In function `mpi::Clock::Clock(const std::basic_string<char, std::char_traits<char>, std::allocator<char>> &, std::basic_ostream<char, std::char_traits<char>> &)':
/users/vtil/zz/kai_support/Intersect/src/mpipp/utils.cpp:31: undefined reference to `typeinfo for __kai::map_base<int, std::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::less<int>, std::allocator<std::pair<const int, std::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>'


/users/vtil/zz/kai_support/Intersect/src/mpipp/utils.cpp:31: undefined reference to `void __kai::map_base<T1, T2, T3, T4>::destroy_node(__kai::rb_tree_node_base *) [with T1=int, T2=std::basic_string<char, std::char_traits<char>, std::allocator<char>>, T3=std::less<int>, T4=std::allocator<std::pair<const int, std::basic_string<char, std::char_traits<char>, std::allocator<char>>>>]'
/users/vtil/zz/kai_support/Intersect/src/mpipp/utils.cpp:31: undefined reference to `__kai::rb_tree_node_base *__kai::map_base<T1, T2, T3, T4>::make_node(const void *) [with T1=int, T2=std::basic_string<char, std::char_traits<char>, std::allocator<char>>, T3=std::less<int>, T4=std::allocator<std::pair<const int, std::basic_string<char, std::char_traits<char>, std::allocator<char>>>>]'


../util/libutil.a(messages.o): In function `ngrs::MessageStreamStack::__ct( (void))':
/users/vtil/zz/kai_support/Intersect/src/util/messages.cpp:100: undefined reference to `std::deque<T1, T2>::~deque<ngrs::IMessageStream *, std::allocator<ngrs::IMessageStream *>>() [with T1=ngrs::IMessageStream *, T2=std::allocator<ngrs::IMessageStream *>]'


../util/libutil.a(messages.o): In function `std::stack<T1, T2>::stack<ngrs::IMessageStream *, std::deque<ngrs::IMessageStream *, std::allocator<ngrs::IMessageStream *>>>(const T2 &) [with T1=ngrs::IMessageStream *, T2=std::deque<ngrs::IMessageStream *, std::allocator<ngrs::IMessageStream *>>]':
/vend/KCC/KCC_BASE/include/stack:47: undefined reference to `_Z1ZZ2Z::__CPR137____ct__Q2_3std91deque__tm__78_PQ2_4ngrs14IMessageStreamQ2_3std43allocator__tm__26_PQ2_J33JJ38JFRCQ2_3std19deque__tm(void)'


../util/libutil.a(messages.o): In function `void std::stack<T1, T2>::push(const T2::value_type &) [with T1=ngrs::IMessageStream *, T2=std::deque<ngrs::IMessageStream *, std::allocator<ngrs::IMessageStream *>>]':
/vend/KCC/KCC_BASE/include/stack:52: undefined reference to `void std::deque<T1, T2>::push_back(const T1 &) [with T1=ngrs::IMessageStream *, T2=std::allocator<ngrs::IMessageStream *>]'


../util/libutil.a(messages.o): In function `void std::stack<T1, T2>::pop() [with T1=ngrs::IMessageStream *, T2=std::deque<ngrs::IMessageStream *, std::allocator<ngrs::IMessageStream *>>]':
/vend/KCC/KCC_BASE/include/stack:53: undefined reference to `void std::deque<T1, T2>::pop_back() [with T1=ngrs::IMessageStream *, T2=std::allocator<ngrs::IMessageStream *>]'


../util/libutil.a(messages.o): In function `_PQ2_J35JJ40JFRCQ2_3stdJ13::__CPR309____ct__Q2_3std140stack__tm__126_PQ2_4ngrs14IMessageStreamQ2_3std91deque__tm__78_PQ2_J35JJ40JQ2_3std43allocator__tm(__complex)':
/vend/KCC/KCC_BASE/include/stack:24: undefined reference to `_Z1ZZ2Z::__CPR137____ct__Q2_3std91deque__tm__78_PQ2_4ngrs14IMessageStreamQ2_3std43allocator__tm__26_PQ2_J33JJ38JFRCQ2_3std19deque__tm(void)'


../util/libutil.a(messages.o): In function `std::stack<T1, T2>::~stack<ngrs::IMessageStream *, std::deque<ngrs::IMessageStream *, std::allocator<ngrs::IMessageStream *>>>() [with T1=ngrs::IMessageStream *, T2=std::deque<ngrs::IMessageStream *, std::allocator<ngrs::IMessageStream *>>]':
/vend/KCC/KCC_BASE/include/stack:24: undefined reference to `std::deque<T1, T2>::~deque<ngrs::IMessageStream *, std::allocator<ngrs::IMessageStream *>>() [with T1=ngrs::IMessageStream *, T2=std::allocator<ngrs::IMessageStream *>]'


../util/libutil.a(messages.o): In function `ngrs::MessageStreams::__dt( (void))':
/users/vtil/zz/kai_support/Intersect/src/util/../util/messages.h:121: undefined reference to `std::vector<T1, T2>::~vector<ngrs::MessageStreamStack, std::allocator<ngrs::MessageStreamStack>>() [with T1=ngrs::MessageStreamStack, T2=std::allocator<ngrs::MessageStreamStack>]'


../util/libutil.a(messages.o): In function `std::vector<T1, T2>::vector<ngrs::MessageStreamStack, std::allocator<ngrs::MessageStreamStack>>(T2::size_type, const T1 &, const T2 &) [with T1=ngrs::MessageStreamStack, T2=std::allocator<ngrs::MessageStreamStack>]':
/vend/KCC/KCC_BASE/include/vector:123: undefined reference to `void std::vector<T1, T2>::_initialize_storage(T2::size_type, const T1 &) [with T1=ngrs::MessageStreamStack, T2=std::allocator<ngrs::MessageStreamStack>]'


../util/libutil.a(messages.o): In function `void std::vector<T1, T2>::push_back(const T1 &) [with T1=ngrs::MessageStreamStack, T2=std::allocator<ngrs::MessageStreamStack>]':
/vend/KCC/KCC_BASE/include/vector:200: undefined reference to `void std::vector<T1, T2>::insert_aux(T2::pointer, const T1 &) [with T1=ngrs::MessageStreamStack, T2=std::allocator<ngrs::MessageStreamStack>]'


../util/libutil.a(messages.o): In function `_c::__ct__Q2_4ngrs19PrefixMessageStreamFRCQ2_3std78basic_string__tm__58_cQ2_3std20char_traits__tm__2_cQ2_3std18allocator__tm(void)':


/users/vtil/zz/kai_support/Intersect/src/util/messages.cpp:57: undefined reference to `std::deque<T1, T2>::~deque<ngrs::IMessageStream *, std::allocator<ngrs::IMessageStream *>>() [with T1=ngrs::IMessageStream *, T2=std::allocator<ngrs::IMessageStream *>]'


/users/vtil/zz/kai_support/Intersect/src/util/messages.cpp:57: undefined reference to `std::deque<T1, T2>::~deque<ngrs::IMessageStream *, std::allocator<ngrs::IMessageStream *>>() [with T1=ngrs::IMessageStream *, T2=std::allocator<ngrs::IMessageStream *>]'


/users/vtil/zz/kai_support/Intersect/src/util/messages.cpp:57: undefined reference to `std::deque<T1, T2>::~deque<ngrs::IMessageStream *, std::allocator<ngrs::IMessageStream *>>() [with T1=ngrs::IMessageStream *, T2=std::allocator<ngrs::IMessageStream *>]'


/users/vtil/zz/kai_support/Intersect/src/util/messages.cpp:57: undefined reference to `std::deque<T1, T2>::~deque<ngrs::IMessageStream *, std::allocator<ngrs::IMessageStream *>>() [with T1=ngrs::IMessageStream *, T2=std::allocator<ngrs::IMessageStream *>]'


/users/vtil/zz/kai_support/Intersect/src/util/messages.cpp:57: undefined reference to `std::vector<T1, T2>::~vector<ngrs::MessageStreamStack, std::allocator<ngrs::MessageStreamStack>>() [with T1=ngrs::MessageStreamStack, T2=std::allocator<ngrs::MessageStreamStack>]'


../util/libutil.a(messages.o): In function `ngrs::PrefixMessageStream::__dt( (void))':
/users/vtil/zz/kai_support/Intersect/src/util/../util/messages.h:54: undefined reference to `std::vector<T1, T2>::~vector<ngrs::MessageStreamStack, std::allocator<ngrs::MessageStreamStack>>() [with T1=ngrs::MessageStreamStack, T2=std::allocator<ngrs::MessageStreamStack>]'


collect2: ld returned 1 exit status
make: *** [driver_mpitest1.exe] Error 1

Thank you.

Viveka


 



Fed up with 56K? Sign up for a FREE BT Broadband connection!