Isso é facil.
Não. Outra maneira. Nesse sentido, você deveria significar 'rebaixar' seu Boost.
Eu mesmo encontrei isso, então vou contar isso como uma história. Resolvi isso sem precisar visitar a OTLand.
Eu tenho tudo configurado para compilar, Recém-instalado
GCC 4.7 Recém-compilado
Lua 5.1.5 .
Boost fresco agradável
1.52 . Eu tinha baixado o
foroottenserver-0.3.6pl1.r101.tar.gz (na verdade, eu estava trabalhando com o rev3884 desde que executo um servidor 8.6, mas isso é irrelevante, trabalhe comigo aqui!)
Eu faço '
autoreconf -vfi '
Eu faço '
CC = "ccache gcc" ./configure --enable-mysql '
Eu faço '
fazer '
Eu noto alguns erros. Eu suspiro. Eu odeio erros. Então, eu digo a mim mesmo, vamos encontrar o máximo que a opção de 'continuar' do make; para que possamos esmagar o máximo de uma vez.
Eu faço '
make -k ', espero terminar e então faço '
make -k ' novamente e eu recebo ...
Vamos parar por aqui. Eu quero que você absorva este aqui. O que acabei de fazer lá, make -k seguido por uma segunda execução significa que, da segunda vez, tudo o que vou obter são os erros relevantes e nenhuma distração externa. Com quaisquer problemas futuros que você possa encontrar, isso torna muito menor a quantidade de 'postar a saída' que os membros podem pedir para ajudá-lo . Uma coisa boa.
continuando ... Eu entendo:
[CÓDIGO] luascript.cpp: Na função de membro 'bool LuaScriptInterface :: loadDirectory (const string &, Npc *)':
luascript.cpp: 719: 23: error: 'class boost :: filesystem :: directory_entry' não tem nenhum membro chamado 'leaf'
scriptmanager.cpp: na função de membro 'bool ScriptingManager :: loadMods ()':
scriptmanager.cpp: 122: 23: erro: 'class boost :: filesystem :: directory_entry' não tem nenhum membro chamado 'leaf' [/ CODE]
Uma pesquisa no Google por revela (algumas perguntas do StackExchange e algumas postagens de fórum que basicamente se resumem a ->) isso
Recursos obsoletos do sistema de arquivos
A linha 122 de scriptmanager.cpp e a linha 719 de luascript.cpp são idênticas; esta:
[CÓDIGO] std :: string s = it-> folha (); [/ CODE]
Depois de olhar preguiçosamente para a página e pensar que eles simplesmente renomearam a função, altero as duas instâncias de '
leaf () ' para '
filename () '. Nada de bom. Mesmo erro, exceto que diz nome do arquivo em vez de folha. Eu olho para trás para a página Boost e examino-a mais de perto. eu vejo
Portanto, eu mudo as duas instâncias que alterei anteriormente para '
path (). Filename () ' desta vez. Algo diferente!
[CÓDIGO] erro: conversão de 'boost :: filesystem :: path' para tipo não escalar 'std :: string {aka std :: basic_string <char>}' solicitada [/ CODE]
Na página do Boost, também notei
Então, eu altero novamente as duas instâncias que acabei de alterar, agora para '
path (). Filename (). String () ' desta vez. Vitória! Para mim, pelo menos. SE você encontrar algum problema, me avise. Eu normalmente não me importo, mas demorou um pouco para escrever, então rep ++ se isso resolver seu problema, por favor.
TL; DR: Alterar
folha () para
caminho (). Nome do arquivo (). String ()