Questão O que esta linha de comando faz?


export LIBRARY_PATH=.

4


origem


-1 Você quer dizer o que esse comando faz. Não o que esta linha de comando faz. Eu quase pensei que a pergunta era "O que a linha de comando faz" !! - barlop


Respostas:


Em cascas Bourne-like, define a variável ${LIBRARY_PATH} para ser o diretório de trabalho atual (no momento em que é referenciado) e exporta para outros comandos para ver.

Se você quisesse o diretório atual no momento da export, você usaria:

export LIBRARY_PATH=$(pwd)

Note que este comando desconsidera qualquer conteúdo que já tenha sido atribuído a ${LIBRARY_PATH}. Se você deseja acrescentar ${LIBRARY_PATH} você poderia usar:

export LIBRARY_PATH=${LIBRARY_PATH}:.

O vinculador do GCC é um desses comandos que consumirá ${LIBRARY_PATH}:

O valor de LIBRARY_PATH é uma lista de diretórios separados por dois pontos, muito parecida com o PATH. Quando   configurado como um compilador nativo, o GCC tenta os diretórios assim especificados   procurando por arquivos de linkers especiais, se não puder encontrá-los usando GCC_EXEC_PREFIX.

Vejo man gcc e man export Para maiores informações.


7





Isso define uma variável de ambiente LIBRARY_PATH como a diretiva atual em um script de shell e a exporta para que outros comandos possam ver esse valor. Essa variável de ambiente é verificada pelo vinculador para localizar todas as bibliotecas que seu código faz referência.


1



Define a variável de ambiente como um caractere de parada completa. No caso específico da maneira como o LIBRARY_PATH é usado pelos compiladores, significa o diretório atual no momento da compilação.


export LIBRARY_PATH=.

Esse comando diz ao vinculador para pesquisar uma biblioteca no diretório atual.


1



Nenhum vinculador é mencionado nesta linha de comando ou na pergunta original. A questão parece muito mais direta do que isso. - Johnsyweb


Isso define a variável de ambiente LIBRARY_PATH. O valor é o nome do diretório atual. A exportação instrui o bash, que a variável não estará localizada no shell, mas será passada para os comandos iniciados a partir daqui.


1



Não, o valor é a string ".". este representa o diretório atual quando usado como um caminho do sistema de arquivos, mas o shell não substitui nome do diretório atual lá.


Você está configurando a variável env LIBRARY_PATH para o diretório de trabalho atual e exportá-lo para que ele seja disponibilizado para programas fora do shell, compilador no seu caso.

Esses diretórios especificados por você LIBRARY_PATH será pesquisado após quaisquer diretórios especificados na linha de comando com a opção -L, e antes dos diretórios padrão padrão (como /usr/local/lib e /usr/lib).


1



Como eu disse sobre as outras respostas - ele define LIBRARY_PATH para um valor que significa "o diretório atual" quando o compilador o usa. Ele não configura para o cwd no momento em que o comando de exportação é executado.