O que exatamente é g ++?

1

Existe uma coisa que eu não entendo - e essa é a pergunta o que é g ++?

Eu pesquisei pela web ampla (em todos os aspectos em que pensei, pelo menos). Nenhum resultado obtido (o mais próximo que cheguei do que o g ++ é, é this ).

Então, g ++ é uma biblioteca projetada para o compilador GCC (ou é um compilador em si)? Eu sei que digitando

$sudo apt-get install g++

em sistemas baseados em Debian instalará o g ++. Mas agora estou bastante confuso com o que é o g ++. Então, é uma biblioteca C ++ ou um compilador em si? Tanto quanto eu sei, pesquisando g + + no Google (eu aposto outros motores de busca, também), não retorna nenhum resultado útil.

Obrigado por responder.

    
por John Lee 14.06.2018 / 15:17

1 resposta

1

the GCC Compiler

Uma fonte de confusão aqui é que o GCC tem vários significados, algumas vezes pode se referir ao compilador C especificamente ("GNU C Compiler"), algumas vezes pode se referir a toda a coleção de compiladores ("GNU Compiler Collection").

A coleção de compiladores GNU é como o nome sugere uma coleção de compiladores que compartilham algum código, dentre a coleção estão um compilador C e um compilador C ++.

Os binários "gcc" e "g ++" são "drivers do compilador", eles manipulam a análise das linhas de comando e chamam os programas (compilador, vinculador, pré-processador, se não estiverem integrados) que executam o trabalho real com as opções corretas.

Os compiladores atuais são "cc1" para C e "cc1plus" para C ++.

"g ++" tem comportamentos adicionais específicos para o c ++, de tal forma que ele pode compilar e vincular um programa c ++ pronto para uso. Consulte o link para obter mais detalhes.

Agora para os pacotes Debian.

Os nomes Debian são binários "gcc" e "g ++" com um prefixo de arquitetura e um sufixo de versão, por exemplo, no sistema Debian que estou usando para escrever este post "g ++" é um link simbólico para "g ++ - 6" que por sua vez é um link simbólico para x86_64-linux-gnu-g ++ - 6

O pacote Debian "g ++" na verdade não contém o compilador, ele meramente contém os symlinks de nomes não versionados para nomes versionados e (no Debian stretch) depende de "cpp", "g ++ - 6", "gcc "e" gcc-6 "(Outras versões terão um número de versão diferente).

O pacote Debian "g ++ - 6" contém os binários para o g ++ versão 6.x (nomeado como x86_64-linux-gnu-g ++ - 6 no x86-64) e cc1plus (localizado em um diretório específico do compilador versão e arquitetura de destino).

"g ++ - 6", por sua vez, depende de "libstdc ++ - 6-dev", contém os cabeçalhos da biblioteca padrão c ++, a versão estática da biblioteca padrão C ++ e um link simbólico para a versão dinâmica da biblioteca padrão C ++ (e algumas outras bibliotecas estáticas que só importam em circunstâncias incomuns)

"libstdc ++ - 6-dev", por sua vez, depende de "libstdc ++ 6" que contém a versão dinâmica da biblioteca padrão C ++ (note que o 6 no libstdc ++ - 6-dev e o 6 no libstdc ++ 6 se referem para coisas diferentes, no primeiro caso é a versão do compilador, no último caso é a versão da biblioteca C padrão).

Então, instalar o pacote "g ++" puxa tudo o que você precisa para escrever programas em C ++

    
por 14.06.2018 / 16:07

Tags