Problemas na compilação com G++

1. Problemas na compilação com G++

Anderson de Oliveira Madeira
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.


  


2. Re: Problemas na compilação com G++

Anderson de Oliveira Madeira
enki

(usa Zenwalk)

Enviado em 23/08/2010 - 15:57h

Digitei errado aqui =P :
"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"
Correção: (...) A única coisa que eu faço é somar os códigos dos caracteres e então determinar a posição no índice que deve abrigar os objetos "Type".


3. Re: Problemas na compilação com G++

Mauricio Souza Klein
Hebang

(usa Arch Linux)

Enviado em 24/09/2010 - 22:53h

Olá!

Não testei aqui, mas no arquivo da test_map.cpp, você importa o HashMap.hpp ao invés do HashMap.cpp. Já tive problemas com o g++ parecidos com o seu, e o motivo era que importava o arquivo de cabeçalho (.h). Logo, quando o compilador tenta linkar os métodos, não acha as suas implementações.

Espero ter ajudado.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts