
enki
(usa Zenwalk)
Enviado em 23/08/2010 - 15:54h
Fala galera do VOL, não tô conseguindo compilar um teste que tô fazendo com Hashing, o código tá muito simples, não tem nada sofisticado. A única coisa que eu faço é somar os códigos dos caracteres e então determinar o índice de um vetor em um vetor, nessa posição do vetor, estará uma lista de Node's, os que foram mapeados para aquela posição através da função privada HashMap::get_location(). Depois de tentar compilar com o g++ não tive sucesso:
$ g++ HashMap.cpp test_map.cpp -Wall -o test
O g++ mostra um monte de referências não definidas. Achei estanho, então depois de verificar a tabela de símbolos dos arquivos objeto gerados vi que os símbolos correspondentes às funções membro da classe HashMap não tão sendo inseridas nos arquivos objeto:
$ nm HashMap.o
00000040 t _GLOBAL__I_HashMap.cpp
00000000 t _Z41__static_initialization_and_destruction_0ii
U _ZNSt8ios_base4InitC1Ev
U _ZNSt8ios_base4InitD1Ev
00000000 b _ZStL8__ioinit
U __cxa_atexit
U __dso_handle
U __gxx_personality_v0
$ nm test_map.o
000005e7 t _GLOBAL__I_main
U _Unwind_Resume
000005a7 t _Z41__static_initialization_and_destruction_0ii
00000000 W _ZN6ObjectC1Ei
U _ZN7enki_ed7HashMapI6ObjectE5storeESsPS1_b
U _ZN7enki_ed7HashMapI6ObjectEC1Ei
U _ZN7enki_ed7HashMapI6ObjectED1Ev
U _ZNK7enki_ed7HashMapI6ObjectE3getESs
U _ZNSaIcEC1Ev
U _ZNSaIcED1Ev
U _ZNSolsEPFRSoS_E
U _ZNSolsEPKv
U _ZNSolsEi
U _ZNSsC1EPKcRKSaIcE
U _ZNSsD1Ev
U _ZNSt8ios_base4InitC1Ev
U _ZNSt8ios_base4InitD1Ev
U _ZSt4cout
U _ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
00000000 b _ZStL8__ioinit
U _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
00000060 r _ZZL18__gthread_active_pvE20__gthread_active_ptr
U _ZdlPv
U _Znwj
U __cxa_atexit
U __dso_handle
U __gxx_personality_v0
00000000 T main
w pthread_cancel
Aqui segue o código fonte:
HashMap.hpp:
http://enkiopensrc.pastebin.com/ahDRa6Ln
HashMap.cpp:
http://enkiopensrc.pastebin.com/21PT87Ba
test_map.cpp:
http://enkiopensrc.pastebin.com/karsXpCe
Alguém consegue identificar uma solução?
Valeu.