qual é a sintaxe de INPUT no arquivo

3

Quando eu estudo o Clang para x86_64 Ubuntu 16.04 Binaries pré-construídos, vejo que o libc ++. então não é um link para a biblioteca compartilhada real, é um arquivo de texto com texto:

INPUT(libc++.so.1 -lc++abi)

Portanto, -lc ++ é apenas igual ao link para libc ++. so.1 e, em seguida, link para libc ++ abi, nunca vejo essa sintaxe em nenhum dos meus livros linux e não consigo encontrar nenhuma referência útil. Eu também tento escrever um libhaha.so com informações:

INPUT(-la -lb)

e veja que g ++ main.cpp -lhaha é igual a g ++ main.cpp -la -lb. Parece que esse recurso não está apenas disponível no clang, é um recurso geral do Linux. Eu quero saber qual é a sintaxe de tal recurso e se há alguma boa referência para falar sobre tal recurso. Esse recurso é muito útil, porque eu posso fornecer um link para um grupo de biblioteca compartilhada, não apenas um.

    
por ken 09.08.2016 / 23:27

1 resposta

2

É um recurso do vinculador GNU ld . Um arquivo de entrada que não está em um formato binário conhecido é tentado como um script de vinculador.

Documentação sobre scripts de linker pode ser encontrada no manual ld (tente info ld ); Também encontrei uma cópia na web .

    
por 09.08.2016 / 23:50