Jump to content
  • Announcements

    • Majesty

      Seja bem vindo a seção Tutoriais!   04/25/2019

      Seja bem vindo a seção Tutoriais! 
      Aqui, você pode encontrar diversos tutoriais sobre OTServ. Se tiver dúvidas e/ou problemas sobre algum conteúdo, primeiro, você deve utilizar a ferramenta de busca e explorar o fórum. Se você não encontrou o que precisa, considere criar um tópico na seção de Suporte:
      https://forums.otserv.com.br/index.php?/forums/forum/402-suporte-dúvidas-bugs-erros/ Considere também ler o grande guia do usuário com dúvidas, que possui várias recomendações e dicas de como tirar dúvidas.

      Obrigado e boa sorte!
Beeki

[vídeo] Compilar TFS no Ubuntu/Debian

Recommended Posts

Lordfire    258
Lordfire

Muito bom Beeki, em vídeo é muito mais fácil :DDD

Share this post


Link to post
grilo13    158
grilo13

Valeu, vídeos tutorial são sempre ótimos me lembrou de instalar meu ubuntu

Hidden Content

    Sign In here or Sign Up here to see this hidden content.
/emoticons/[email protected] 2x" width="20" height="20" />

Share this post


Link to post
Beeki    28
Beeki

Muito bom Beeki, em vídeo é muito mais fácil :DDD

 

e é porque nem foi você que postou né, kk

 

 

por nada, estarei sempre gerindo novos conteúdos~

Share this post


Link to post
dalvorsn    289
dalvorsn

Cara, olha o tamanho das linhas de comando, porque não coloca elas no topico, em tags bbcode?

Outra coisa é, os repositorios variam da distribuição, logo ensinar a usar o sudo apt-cache search com grep seria bem produtivo, ja que o tutorial é para ubuntu de um modo geral e é bem comum no upgrade da distro atualizarem os repositorios.

No mais é um bom tutorial, apesar de achar que não há de fato essa necessidade de uma video aula para tal tema.

Desculpe se pareci depreciar o tópico, não é a intenção, é apenas um toque mesmo.

Share this post


Link to post
Goomba25    2
Goomba25

Bom dia @Beeki, recebi um erro após executar o segundo comando(das libs)...
*Sistema: ubuntu 14.04

Hidden Content

    Sign In here or Sign Up here to see this hidden content.

Cara, olha o tamanho das linhas de comando, porque não coloca elas no topico, em tags bbcode?

Segue lista dos comandos que usei:
 
1º comando:

Hidden Content

    Sign In here or Sign Up here to see this hidden content.

------------------------------------------------------------

2º comando:

Hidden Content

    Sign In here or Sign Up here to see this hidden content.

Aqui, tive os erros com as bibliotecas "liblua5.1-sql-mysql-dev", "liblua5.1-sql-sqlite3-dev", e se não me engano, a "liblua5.1-sql-mysql-dev". Precisei remover elas para prosseguir(queria ver até onde iria).

------------------------------------------------------------

3º comando:

Hidden Content

    Sign In here or Sign Up here to see this hidden content.

Quando começou a checagem das bibliotecas, é visível a quantidade faltando, e mostra um erro final por falta do LUAJIT("configure: error: "LuaJIT header not found.")

Lista da checagem após o 3º comando:

 

Hidden Content

    Sign In here or Sign Up here to see this hidden content.

 

 

------------------------------------------------------------
Após tentar dar permissão e executar o build.sh, novamente temos na tela falta de recursos..

Hidden Content

    Sign In here or Sign Up here to see this hidden content.

Fico no aguardo do Beeki...

Edited by Goomba25

Share this post


Link to post
Lordfire    258
Lordfire

Goomba,

 

Como você pretende usar MySQL, pode também deixar de lado tudo relacionado a SQLite.

Share this post


Link to post
Beeki    28
Beeki

Cara, olha o tamanho das linhas de comando, porque não coloca elas no topico, em tags bbcode?

Outra coisa é, os repositorios variam da distribuição, logo ensinar a usar o sudo apt-cache search com grep seria bem produtivo, ja que o tutorial é para ubuntu de um modo geral e é bem comum no upgrade da distro atualizarem os repositorios.

No mais é um bom tutorial, apesar de achar que não há de fato essa necessidade de uma video aula para tal tema.

Desculpe se pareci depreciar o tópico, não é a intenção, é apenas um toque mesmo.

 

http://forums.otserv.com.br/index.php/topic/164380-compilando-e-rodando-otserv-linux/

Share this post


Link to post
Goomba25    2
Goomba25

 

Procure o nome da lib com grep para a especificação:

Hidden Content

    Sign In here or Sign Up here to see this hidden content.

resultado:

Hidden Content

    Sign In here or Sign Up here to see this hidden content.

"Ah mas o nome ta diferente" Okay, procure no google.

Hidden Content

    Sign In here or Sign Up here to see this hidden content.

 

Os nomes mudaram, mas continua a mesma coisa.

O comando no 14.04 fica assim:

Hidden Content

    Sign In here or Sign Up here to see this hidden content.

#edit

Quanto ao luajit, se voce não instalar nao da ne

Novamente use o search para saber quais bibliotecas tem disponivel:

Hidden Content

    Sign In here or Sign Up here to see this hidden content.

Hidden Content

    Sign In here or Sign Up here to see this hidden content.

Hidden Content

    Sign In here or Sign Up here to see this hidden content.

Aparentemente tudo certo com as libs agora

Hidden Content

    Sign In here or Sign Up here to see this hidden content.
/emoticons/[email protected] 2x" width="20" height="20" />reputado.

Tive 2 warnings ao executar o build.sh(dei permissão), sabe o que são?

make[1]: ** [game.o] Erro 1

make: ** [all] Erro 2

 

*Como todo warning é tratado como erro, o build nao funcionou... Algm conhece a causa dos warnings?

 

Goomba,

Como você pretende usar MySQL, pode também deixar de lado tudo relacionado a SQLite.

Uso o SQLite em outro servidor na maquina(test server) mas é bom saber disso

Hidden Content

    Sign In here or Sign Up here to see this hidden content.
/emoticons/[email protected] 2x" width="20" height="20" />reputado.

Share this post


Link to post
dalvorsn    289
dalvorsn

warnings são alertas, geralmente o nome do warning ja explica boa parte do problema, eles não são erros em si, mas podem vir a gerar, pra ignorar é só adicionar como flag -Wno-nomedowarning

Posta o erro completo ai, o que tu postou ta generico demais pra determinar alguma coisa

Share this post


Link to post
Goomba25    2
Goomba25

warnings são alertas, geralmente o nome do warning ja explica boa parte do problema, eles não são erros em si, mas podem vir a gerar, pra ignorar é só adicionar como flag -Wno-nomedowarning

Posta o erro completo ai, o que tu postou ta generico demais pra determinar alguma coisa

Hm, era esse "-wno" que eu procurava

Hidden Content

    Sign In here or Sign Up here to see this hidden content.
/emoticons/[email protected] 2x" width="20" height="20" />

Segue o que recebi apos enviar ./build.sh

 

 

TheForgottenServer build script- seems to speed things up ALOT.

CCache: OK

CCache binaries located in /usr/lib/ccache

Building on 4 cores, using 5 processes

make  all-am

make[1]: Entrando no diretório `/home/vitor/OT/TheNorth_Linux'

g++ -DHAVE_CONFIG_H -I.    -I/usr/include/libxml2  -I/usr//include/luajit-2.0   -O2 -fomit-frame-pointer -D__USE_MYSQL__    -D__ROOT_PERMISSION__ -D__LUAJIT__ -D_THREAD_SAFE -D_REENTRANT -Wall -Wextra -Werror -Wno-strict-aliasing -Wno-unused-parameter -pipe -MT chat.o -MD -MP -MF .deps/chat.Tpo -c -o chat.o chat.cpp

g++ -DHAVE_CONFIG_H -I.    -I/usr/include/libxml2  -I/usr//include/luajit-2.0   -O2 -fomit-frame-pointer -D__USE_MYSQL__    -D__ROOT_PERMISSION__ -D__LUAJIT__ -D_THREAD_SAFE -D_REENTRANT -Wall -Wextra -Werror -Wno-strict-aliasing -Wno-unused-parameter -pipe -MT game.o -MD -MP -MF .deps/game.Tpo -c -o game.o game.cpp

g++ -DHAVE_CONFIG_H -I.    -I/usr/include/libxml2  -I/usr//include/luajit-2.0   -O2 -fomit-frame-pointer -D__USE_MYSQL__    -D__ROOT_PERMISSION__ -D__LUAJIT__ -D_THREAD_SAFE -D_REENTRANT -Wall -Wextra -Werror -Wno-strict-aliasing -Wno-unused-parameter -pipe -MT ioguild.o -MD -MP -MF .deps/ioguild.Tpo -c -o ioguild.o ioguild.cpp

g++ -DHAVE_CONFIG_H -I.    -I/usr/include/libxml2  -I/usr//include/luajit-2.0   -O2 -fomit-frame-pointer -D__USE_MYSQL__    -D__ROOT_PERMISSION__ -D__LUAJIT__ -D_THREAD_SAFE -D_REENTRANT -Wall -Wextra -Werror -Wno-strict-aliasing -Wno-unused-parameter -pipe -MT iologindata.o -MD -MP -MF .deps/iologindata.Tpo -c -o iologindata.o iologindata.cpp

g++ -DHAVE_CONFIG_H -I.    -I/usr/include/libxml2  -I/usr//include/luajit-2.0   -O2 -fomit-frame-pointer -D__USE_MYSQL__    -D__ROOT_PERMISSION__ -D__LUAJIT__ -D_THREAD_SAFE -D_REENTRANT -Wall -Wextra -Werror -Wno-strict-aliasing -Wno-unused-parameter -pipe -MT iomap.o -MD -MP -MF .deps/iomap.Tpo -c -o iomap.o iomap.cpp

chat.cpp: In member function ‘ChatChannel* Chat::getChannel(Player*, uint16_t)’:

chat.cpp:1144:10: error: converting ‘false’ to pointer type ‘ChatChannel*’ [-Werror=conversion-null]

   return false;

          ^

cc1plus: all warnings being treated as errors

make[1]: ** [chat.o] Erro 1

make[1]: ** Esperando que outros processos terminem.

game.cpp: In member function ‘Item* Game::findItemOfType(Cylinder*, uint16_t, bool, int32_t)’:

game.cpp:1788:10: error: converting ‘false’ to pointer type ‘Item*’ [-Werror=conversion-null]

   return false;

          ^

cc1plus: all warnings being treated as errors

make[1]: ** [game.o] Erro 1

mv -f .deps/ioguild.Tpo .deps/ioguild.Po

mv -f .deps/iomap.Tpo .deps/iomap.Po

mv -f .deps/iologindata.Tpo .deps/iologindata.Po

make[1]: Saindo do diretório `/home/vitor/OT/TheNorth_Linux'

make: ** [all] Erro 2

 

 

Share this post


Link to post
dalvorsn    289
dalvorsn

Interpretando os erros:

Hidden Content

    Sign In here or Sign Up here to see this hidden content.

Em chat.cpp, na função "ChatChannel* Chat::getChannel(Player*, uint16_t)' [ retorno ChatChannel*; Classe Chat; Nome: getChannel; params...]

Erro de conversão, um booleano, 'false' no caso, está sendo retornado para uma função de retorno ChatChannel, não tem conversão padrão para isso.

Hidden Content

    Sign In here or Sign Up here to see this hidden content.

Mesma coisa

 

Bem, voce pode sim simplesmente ignorar o warning, porem isso é um tipo de coisa que pode crashar, entao faça o seguinte, vá nas funções citadas pelo erro e procure por return false;

substitua por return NULL;

Creio que isso ja soluciona seu problema

 

Mas ... se tiver usando o c++11 use nullptr, somente se estiver usando c++11, mas acho que nao é o caso, então ignore o que foi falado nessa linha

Edited by dalvorsn

Share this post


Link to post
Goomba25    2
Goomba25

Interpretando os erros:

Hidden Content

    Sign In here or Sign Up here to see this hidden content.

Em chat.cpp, na função "ChatChannel* Chat::getChannel(Player*, uint16_t)' [ retorno ChatChannel*; Classe Chat; Nome: getChannel; params...]

Erro de conversão, um booleano, 'false' no caso, está sendo retornado para uma função de retorno ChatChannel, não tem conversão padrão para isso.

Hidden Content

    Sign In here or Sign Up here to see this hidden content.

Mesma coisa

Bem, voce pode sim simplesmente ignorar o warning, porem isso é um tipo de coisa que pode crashar, entao faça o seguinte, vá nas funções citadas pelo erro e procure por return false;

substitua por return NULL;

Creio que isso ja soluciona seu problema

Mas ... se tiver usando o c++11 use nullptr, somente se estiver usando c++11, mas acho que nao é o caso, então ignore o que foi falado nessa linha

Opa, obrigado pela atenção!(reputado)... Noobisse minha não enxergar o erro mostrado

Hidden Content

    Sign In here or Sign Up here to see this hidden content.
/emoticons/[email protected] 2x" width="20" height="20" />

Após alterar para o chat.cpp e game.cpp, rodei o build.sh e ele me mostrou mais alguns warnings a alterar, mas fiquei com um pé atrás...não há problema em alterar tantos sources?

 

 

cc1plus: all warnings being treated as errors

make[1]: ** [monster.o] Erro 1

make[1]: ** Esperando que outros processos terminem.

mv -f .deps/networkmessage.Tpo .deps/networkmessage.Po

luascript.cpp: In member function ‘bool LuaInterface::loadDirectory(const string&, Npc*, bool)’:

luascript.cpp:741:23: error: ‘class boost::filesystem::directory_entry’ has no member named ‘leaf’

   std::string s = it->leaf();

                       ^

luascript.cpp:744:59: error: no match for ‘operator+’ (operand types are ‘boost::filesystem::path’ and ‘const char [2]’)

    if(recursively && !loadDirectory(it->path().filename() + "/" + s, npc, recursively))

                                                           ^

make[1]: ** [luascript.o] Erro 1

mv -f .deps/npc.Tpo .deps/npc.Po

game.cpp: In constructor ‘Game::Game()’:

game.cpp:80:22: error: array subscript is above array bounds [-Werror=array-bounds]

   globalSaveMessage = false;

                      ^

In file included from game.cpp:18:0:

game.h: In member function ‘void Game::globalSave()’:

game.h:623:76: error: array subscript is above array bounds [-Werror=array-bounds]

   void setGlobalSaveMessage(int16_t key, bool value) {globalSaveMessage[key] = value;}

                                                                            ^

game.cpp: In member function ‘void Game::prepareGlobalSave()’:

game.cpp:6256:30: error: array subscript is above array bounds [-Werror=array-bounds]

  else if(!globalSaveMessage[2])

                              ^

game.cpp:6258:22: error: array subscript is above array bounds [-Werror=array-bounds]

   globalSaveMessage[2] = true;

                      ^

cc1plus: all warnings being treated as errors

make[1]: ** [game.o] Erro 1

make[1]: Saindo do diretório `/home/vitor/OT/TheNorth_Linux'

make: ** [all] Erro 2

 

 

Share this post


Link to post
dalvorsn    289
dalvorsn

Opa, obrigado pela atenção!(reputado)... Noobisse minha não enxergar o erro mostrado

Hidden Content

    Sign In here or Sign Up here to see this hidden content.
/emoticons/[email protected] 2x" width="20" height="20" />

Após alterar para o chat.cpp e game.cpp, rodei o build.sh e ele me mostrou mais alguns warnings a alterar, mas fiquei com um pé atrás...não há problema em alterar tantos sources?

 

 

cc1plus: all warnings being treated as errors

make[1]: ** [monster.o] Erro 1

make[1]: ** Esperando que outros processos terminem.

mv -f .deps/networkmessage.Tpo .deps/networkmessage.Po

luascript.cpp: In member function ‘bool LuaInterface::loadDirectory(const string&, Npc*, bool)’:

luascript.cpp:741:23: error: ‘class boost::filesystem::directory_entry’ has no member named ‘leaf’

   std::string s = it->leaf();

                       ^

luascript.cpp:744:59: error: no match for ‘operator+’ (operand types are ‘boost::filesystem::path’ and ‘const char [2]’)

    if(recursively && !loadDirectory(it->path().filename() + "/" + s, npc, recursively))

                                                           ^

make[1]: ** [luascript.o] Erro 1

mv -f .deps/npc.Tpo .deps/npc.Po

game.cpp: In constructor ‘Game::Game()’:

game.cpp:80:22: error: array subscript is above array bounds [-Werror=array-bounds]

   globalSaveMessage = false;

                      ^

In file included from game.cpp:18:0:

game.h: In member function ‘void Game::globalSave()’:

game.h:623:76: error: array subscript is above array bounds [-Werror=array-bounds]

   void setGlobalSaveMessage(int16_t key, bool value) {globalSaveMessage[key] = value;}

                                                                            ^

game.cpp: In member function ‘void Game::prepareGlobalSave()’:

game.cpp:6256:30: error: array subscript is above array bounds [-Werror=array-bounds]

  else if(!globalSaveMessage[2])

                              ^

game.cpp:6258:22: error: array subscript is above array bounds [-Werror=array-bounds]

   globalSaveMessage[2] = true;

                      ^

cc1plus: all warnings being treated as errors

make[1]: ** [game.o] Erro 1

make[1]: Saindo do diretório `/home/vitor/OT/TheNorth_Linux'

make: ** [all] Erro 2

 

 

Tem dois tipos de erro ai, o primeiro e quanto ao boost, esse ai tu vai em definitions.h e define isso la:

 

Hidden Content

    Sign In here or Sign Up here to see this hidden content.

 

Ja o warning de array bound, é peloo seguinte, quando cria um array, exemplo array[10], ele vai de 0 a 9, se tentar acessar array[10] isso é um erro de array bound

game.h

 

Hidden Content

    Sign In here or Sign Up here to see this hidden content.

Troque para:

 

Hidden Content

    Sign In here or Sign Up here to see this hidden content.

Agora sim pode acessar o index 2

Hidden Content

    Sign In here or Sign Up here to see this hidden content.
/emoticons/[email protected] 2x" width="20" height="20" />

Share this post


Link to post
Goomba25    2
Goomba25

Tem dois tipos de erro ai, o primeiro e quanto ao boost,

 

esse ai tu vai em definitions.h e define isso la:

Hidden Content

    Sign In here or Sign Up here to see this hidden content.

Ja o warning de array bound, é peloo seguinte, quando cria um array, exemplo array[10], ele vai de 0 a 9, se tentar acessar array[10] isso é um erro de array bound

game.h

Hidden Content

    Sign In here or Sign Up here to see this hidden content.

Troque para:

Hidden Content

    Sign In here or Sign Up here to see this hidden content.

 

Agora sim pode acessar o index 2

Hidden Content

    Sign In here or Sign Up here to see this hidden content.
/emoticons/[email protected] 2x" width="20" height="20" />

"É fácil! eles disseram" "5 linhas e ta compilado, isso aí é preguiça sua! eles disseram" AHUauhHAUuaHuhAUH

@dalvorsn, obrigado pela ajuda cara! Rodou boa parte e surgiram mais 2 warnings...(eu devia ter criado um topico kkk)...

Há alguma maneira de mostrar todos os erros(aparentemente está mostrando de 2 em 2) ou ignorar os warnings?(e então, eu abro um tópico para resolve-los mais tarde)

Edited by Goomba25

Share this post


Link to post
dalvorsn    289
dalvorsn

A opção "-Werror" trata todos os warnings como erro, para não parar em nenhum warning é só remover, mas aconselho que resolva-os na medida do possivel

 

Tem uma lista be grandinha aqui, sobre opções do g++

Hidden Content

    Sign In here or Sign Up here to see this hidden content.

Edited by dalvorsn

Share this post


Link to post
darktibia1234567    10
darktibia1234567

funciona pra   Ubuntu 13.10 (GNU/Linux 2.6.32-042stab084.14 x86_64)?

Share this post


Link to post
Lordfire    258
Lordfire

O problema é que o TFS é um monstrinho e tem resquícios de gambiarra ainda hehe (tipo retornar false ao invés de null pointer, embora false converta pra 0 e 0 converta pra null pointer) e versões diferentes do g++ apitam de formas diferentes pros mesmos erros.

 

E como o dalvorsn disse, é melhor corrigir os warnings do que mandar ignorar

Hidden Content

    Sign In here or Sign Up here to see this hidden content.
/emoticons/[email protected] 2x" width="20" height="20">

 

 

funciona pra   Ubuntu 13.10 (GNU/Linux 2.6.32-042stab084.14 x86_64)?

Não tem motivos pra não funcionar, se der problema avisa aqui.

Share this post


Link to post
Goomba25    2
Goomba25

A opção "-Werror" trata todos os warnings como erro, para não parar em nenhum warning é só remover, mas aconselho que resolva-os na medida do possivel

Tem uma lista be grandinha aqui, sobre opções do g++

Hidden Content

    Sign In here or Sign Up here to see this hidden content.

Minha idéia era ignorar os warnings p/ deixar um test server on p/ uns amigos testarem o mapa, e abrir um tópico p/ resolver os warnings que não compreendi...

Minha "barreira" é que tenho pouca experiência com linux, e menor ainda em compilar nele...

ps: Onde ta setado esse -Werror?

O problema é que o TFS é um monstrinho e tem resquícios de gambiarra ainda hehe (tipo retornar false ao invés de null pointer, embora false converta pra 0 e 0 converta pra null pointer) e versões diferentes do g++ apitam de formas diferentes pros mesmos erros.

kkkkk, faz parte...mas pera. 0 converte pra null? Não seria false=0 e null=nenhuma informação?

Share this post


Link to post
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    No registered users viewing this page.

×