Ferramentas do usuário

Ferramentas do site


compilando_o_warzone2100_no_free_bsd

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Próxima revisão
Revisão anterior
Última revisãoAmbos lados da revisão seguinte
compilando_o_warzone2100_no_free_bsd [2012/11/08 15:17] – Criou página com '= Compilando a versão 3.0rc3 = O [http://wz2100.net warzone2100] já está portado para o FreeBSD há algum tempo, mas em geral o pessoal demora um pouco para atualizar a vers…' cartolacompilando_o_warzone2100_no_free_bsd [2012/11/08 18:00] – acertando versão wz e colocando do fbsd cartola
Linha 1: Linha 1:
  
-======= Compilando a versão 3.0rc3 =======+======= Compilando a versão 3.1_rc3 =======
  
  
-O [[http://wz2100.net|warzone2100]] já está portado para o FreeBSD há algum tempo, mas em geral o pessoal demora um pouco para atualizar a versão. Resolvi então compilar a versão 3.0rc3 do jogo e depois de alguns percalços resolvi compartilhar aqui o que fiz, pois não é tarefa muito óbvia.+O [[http://wz2100.net|warzone2100]] já está portado para o FreeBSD há algum tempo, mas em geral o pessoal demora um pouco para atualizar a versão. Resolvi então compilar a versão 3.1_rc3 do jogo e depois de alguns percalços resolvi compartilhar aqui o que fiz, pois não é tarefa muito óbvia. Em caso de dúvidas, críticas e sugestões entre em contato comigo pelo email {{arquivo:meuend.png}} 
 + 
 +O FreeBSD onde esta compilação foi feita foi um 9.1-RC1.
  
  
Linha 74: Linha 76:
  
  
-O problema de usar mais de uma versão de gcc é que a biblioteca lstdc++ encontrada por padrão mesmo pelas novas versões instaladas é a original. A única maneira que encontrei, por enquanto, para resolver isso é executar manualmente a última etapa de compilação colocando parâmetros nos locais corretos para que a lstdc++ encontrada seja a correspondente ao compilador usado.+O problema de usar mais de uma versão de gcc é que a biblioteca lstdc++ encontrada por padrão mesmo pelas novas versões instaladas é a original. A única maneira que encontrei, por enquanto, para resolver isso é executar manualmente a última etapa de compilação colocando parâmetros nos locais corretos para que a lstdc++ encontrada seja a correspondente ao compilador usado. O erro indica que o compilador não encontrou algumas referências a objetos: 
 + 
 +| | astar.o: In function `std::list<PathBlockingMap, std::allocator<PathBlockingMap> >::swap(std::list<PathBlockingMap, std::allocator<PathBlockingMap> >&)':/usr/local/lib/gcc48/include/c++/bits/stl_list.h:1213: undefined reference to `std::__detail::_List_node_base::swap(std::__detail::_List_node_base&, std::__detail::_List_node_base&)'astar.o: In function `std::list<PathfindContext, std::allocator<PathfindContext> >::_M_insert(std::_List_iterator<PathfindContext>, PathfindContext const&)':/usr/local/lib/gcc48/include/c++/bits/stl_list.h:1551: undefined reference to `std::__detail::_List_node_base::_M_hook(std::__detail::_List_node_base*)'astar.o: In function `std::list<PathfindContext, std::allocator<PathfindContext> >::_M_transfer(std::_List_iterator<PathfindContext>, std::_List_iterator<PathfindContext>, std::_List_iterator<PathfindContext>)':/usr/local/lib/gcc48/include/c++/bits/stl_list.h:1543: undefined reference to `std::__detail::_List_node_base::_M_transfer(std::__detail::_List_node_base*, std::__detail::_List_node_base*)'astar.o: In function `std::list<PathBlockingMap, std::allocator<PathBlockingMap> >::_M_insert(std::_List_iterator<PathBlockingMap>, PathBlockingMap const&)':/usr/local/lib/gcc48/include/c++/bits/stl_list.h:1551: undefined reference to `std::__detail::_List_node_base::_M_hook(std::__detail::_List_node_base*)'design.o: In function `std::list<DROID_TEMPLATE, std::allocator<DROID_TEMPLATE> >::_M_erase(std::_List_iterator<DROID_TEMPLATE>)':/usr/local/lib/gcc48/include/c++/bits/stl_list.h:1567: undefined reference to `std::__detail::_List_node_base::_M_unhook()'design.o: In function `std::list<DROID_TEMPLATE, std::allocator<DROID_TEMPLATE> >::_M_insert(std::_List_iterator<DROID_TEMPLATE>, DROID_TEMPLATE const&)':/usr/local/lib/gcc48/include/c++/bits/stl_list.h:1551: undefined reference to `std::__detail::_List_node_base::_M_hook(std::__detail::_List_node_base*)'fpath.o: In function `std::list<PATHRESULT, std::allocator<PATHRESULT> >::_M_insert(std::_List_iterator<PATHRESULT>, PATHRESULT const&)':/usr/local/lib/gcc48/include/c++/bits/stl_list.h:1551: undefined reference to `std::__detail::_List_node_base::_M_hook(std::__detail::_List_node_base*)'fpath.o: In function `std::list<PATHJOB, std::allocator<PATHJOB> >::_M_erase(std::_List_iterator<PATHJOB>)':/usr/local/lib/gcc48/include/c++/bits/stl_list.h:1567: undefined reference to `std::__detail::_List_node_base::_M_unhook()'fpath.o: In function `std::list<PATHRESULT, std::allocator<PATHRESULT> >::_M_erase(std::_List_iterator<PATHRESULT>)':/usr/local/lib/gcc48/include/c++/bits/stl_list.h:1567: undefined reference to `std::__detail::_List_node_base::_M_unhook()'fpath.o: In function `std::list<PATHJOB, std::allocator<PATHJOB> >::_M_insert(std::_List_iterator<PATHJOB>, PATHJOB const&)':/usr/local/lib/gcc48/include/c++/bits/stl_list.h:1551: undefined reference to `std::__detail::_List_node_base::_M_hook(std::__detail::_List_node_base*)'scriptvals.o: In function `std::list<INTERP_VAL*, std::allocator<INTERP_VAL*> >::_M_insert(std::_List_iterator<INTERP_VAL*>, INTERP_VAL* const&)':/usr/local/lib/gcc48/include/c++/bits/stl_list.h:1551: undefined reference to `std::__detail::_List_node_base::_M_hook(std::__detail::_List_node_base*)'scriptvals.o: In function `std::list<INTERP_VAL*, std::allocator<INTERP_VAL*> >::_M_erase(std::_List_iterator<INTERP_VAL*>)':/usr/local/lib/gcc48/include/c++/bits/stl_list.h:1567: undefined reference to `std::__detail::_List_node_base::_M_unhook()'../lib/netplay/libnetplay.a(netqueue.o): In function `std::list<NetMessage, std::allocator<NetMessage> >::_M_insert(std::_List_iterator<NetMessage>, NetMessage const&)':/usr/local/lib/gcc48/include/c++/bits/stl_list.h:1551: undefined reference to `std::__detail::_List_node_base::_M_hook(std::__detail::_List_node_base*)'../lib/netplay/libnetplay.a(netqueue.o): In function `std::list<NetMessage, std::allocator<NetMessage> >::_M_erase(std::_List_iterator<NetMessage>)':/usr/local/lib/gcc48/include/c++/bits/stl_list.h:1567: undefined reference to `std::__detail::_List_node_base::_M_unhook()'collect2: error: ld returned 1 exit status<nowiki>***</nowiki>Stop in /dados/download/warzone2100-3.1_rc3-ok_sem_rede/src.<nowiki>***</nowiki>Stop in /dados/download/warzone2100-3.1_rc3-ok_sem_rede/src.<nowiki>***</nowiki>Stop in /dados/download/warzone2100-3.1_rc3-ok_sem_rede.<nowiki>***</nowiki>Stop in /dados/download/warzone2100-3.1_rc3-ok_sem_rede. | 
  
 Pouco antes do erro de compilação apresentado podemos ver uma linha gigante com o comando utilizado. É necessário copiá-la e colocá-la num arquivo para editarmos. A linha que obtive foi essa: Pouco antes do erro de compilação apresentado podemos ver uma linha gigante com o comando utilizado. É necessário copiá-la e colocá-la num arquivo para editarmos. A linha que obtive foi essa:
compilando_o_warzone2100_no_free_bsd.txt · Última modificação: 2012/11/13 10:32 por cartola