O executável binário não será iniciado se chamado fora da pasta de origem

0

Estou tentando iniciar o binário de 32 bits reclient_linux_32 que vem com o jogo Linux Red Eclipse. Eu construí com sucesso a partir da fonte e também tem outra versão do executável. Se eu abrir uma janela e clicar manualmente no executável, o jogo será iniciado sem problemas. Se eu abrir um terminal, navegue até a pasta onde o binário está localizado e execute-o a partir da linha de comando, então ambos também serão iniciados sem nenhum problema.

Mas se eu fizer um lançador de aplicativos, ou apenas abrir um terminal e executar o comando para iniciar o binário de algum diretório diferente, recebo um erro dizendo que o jogo não pode carregar texturas. Estou assumindo que esses arquivos de textura estão localizados localmente perto dos arquivos binários. Mas ainda assim, muitos executáveis requerem arquivos próximos, mas ainda podem ser iniciados de qualquer lugar. Por que isso é um problema?

Por favor, note: ambos os executáveis têm permissões corretas.

    
por ely 20.12.2011 / 20:32

2 respostas

1

O "jogo" provavelmente tem caminhos codificados para diretórios em relação ao diretório de trabalho. ou seja, "../textures/blah" em vez de "/ usr / local / game / textures / blah" ... sem o src ... não poderia começar a testar.

    
por 20.12.2011 / 20:38
1

O motivo pode ser que o programa esteja pesquisando os arquivos de texturas apenas no diretório atual (a mensagem diz isso). Para se aproximar do motivo, você pode executar o programa com strace -v /path/to/program , ele deve mostrar quais arquivos ele deseja abrir.

    
por 20.12.2011 / 20:42