É ineficiente ter links simbólicos para links simbólicos?

2

Estamos configurando uma série de Makefiles em que queremos ter um diretório de inclusão no nível do projeto que tenha links simbólicos para arquivos de inclusão no nível do subprojeto. Muitos desenvolvedores de subprojetos optaram por ter seus arquivos de inclusão também links simbólicos para outro diretório onde o software atual está localizado.

Então, minha pergunta é: é ineficiente ter um link simbólico para um link simbólico para outro arquivo (por exemplo, um cabeçalho C ++ que pode ser incluído dezenas ou mais vezes durante uma compilação)?

Árvore de diretórios de exemplo:

/project/include/
                 x_header1.h -> /project/src/csci_x/include/header1.h
                 x_header2.h -> /project/src/csci_x/include/header2.h
/project/src/csci_x/
                    include/
                            header1.h -> /project/src/csci_x/local_1/cxx/header1.h
                            header2.h -> /project/src/csci_x/local_2/cxx/header2.h
                    local_1/cxx/
                                module1.cpp
                                header1.h
                    local_2/cxx/
                                module2.cpp
                                header2.h
    
por Ogre Psalm33 03.02.2011 / 22:02

1 resposta

2

Não tenho certeza do que você quer dizer ineficiente, mas meu palpite é 'não'.

O kernel manipula todos os links simbólicos, o gnumake apenas faz um open () e obtém o arquivo. Qualquer aplicativo de nível de usuário não se importa (bem, raramente se preocupa) sobre se é um link simbólico ou não, apenas obtém o arquivo.

Os níveis extras de links simbólicos dos quais o kernel precisa passar são insignificantes em relação ao tempo de compilação e gravação / liberação do cache em disco.

    
por 04.02.2011 / 00:03