O link simbólico não usa o diretório de trabalho de destino

5

Eu criei o seguinte link simbólico:

Origem: /usr/local/android-ndk-r5/ndk-build
Destino: /usr/local/bin/ndk-build

No entanto, quando tento usar o ndk-build do meu diretório de origem, ele falha porque não consegue localizar os arquivos dos quais o script depende no diretório de origem.

Como posso obter o link simbólico para usar o diretório de origem como o diretório de trabalho?

    
por Mark Ingram 30.06.2011 / 22:44

2 respostas

5

Você não pode fazer um script de wrapper.

Supondo que o programa se baseia no nome do arquivo para determinar o script (provável):

#!/bin/sh
exec /usr/local/android-ndk-r5/ndk-build "$@"

Supondo que o programa se baseia no diretório de trabalho atual (improvável):

#!/bin/sh
cd /usr/local/android-ndk-r5
exec ./ndk-build "$@"

Salve um desses arquivos em /usr/local/bin/ndk-build e torne-o executável:

sudo editor /usr/local/bin/ndk-build
sudo chmod 755 /usr/local/bin/ndk-build
    
por Lekensteyn 30.06.2011 / 22:52
0

Ao chamar-executar um programa sob o GNU Linux, você recebe alguns argumentos da linha de comando, incluindo o diretório de trabalho atual.

O código no programa decide como usar esses argumentos, portanto, o código decide se o programa usará o diretório do link ou o diretório do destino.

Aparentemente, o ndk-build usa o diretório do link para encontrar seus próprios arquivos, então você é forçado a criar algum tipo de wrapper.

Tenha cuidado para não misturar a "percepção" do diretório de trabalho atual (sob o qual o comando seu é executado, que é o diretório retornado pelo comando pwd ) com a "percepção" do diretório usado pelo ndk-build para encontrar seus próprios arquivos.

    
por ilias iliadis 04.04.2018 / 12:01