No Linux, o GCC significa Coleção de compiladores GNU . É um sistema compilador para várias linguagens de programação. É usado principalmente para compilar os programas C e C++. Leva o nome do programa fonte como argumento necessário; argumentos rest são opcionais, como depuração, aviso, arquivo de objeto e vinculação de bibliotecas.
GCC é um componente central do conjunto de ferramentas GNU. Vários projetos de código aberto são compilados usando o GCC, como o kernel Linux e ferramentas GNU.
É distribuído sob a GPL (General Public License). A primeira versão, CGC 1.0 , foi lançado em 1987. Era apenas para a linguagem de programação C, mas no mesmo ano foi estendido para a linguagem de programação C. Linguagem de programação C++ . Posteriormente foi desenvolvido para outras linguagens de programação como Objective-C Objective-C++ Fortran Java , Ada, Vá e muito mais. Sua versão mais recente possui uma implementação muito aprimorada das linguagens de programação.
É o parceiro oficial do GNU OS; portanto, foi adotado como compilador padrão dos sistemas baseados em Linux.
programação c de matriz de estrutura
Componentes do GCC
GCC é uma ferramenta portátil e pode ser executada em vários sistemas operacionais. Além disso, pode ser portado para janelas usando algumas ferramentas como Cygwin, MinGW e MinGW-W64 . Por ser um componente chave do conjunto de ferramentas GNU, contém os seguintes componentes para desenvolvimento de aplicativos e sistemas operacionais:
Coleção de compiladores GNU (GCC): É um conjunto de compiladores para muitas linguagens, como C/C++ e Objective-C/C++.
Marca GNU: É uma ferramenta de automação usada para compilar e construir aplicativos.
GNU Binutils: É um conjunto que contém ferramentas utilitárias binárias, como vinculador e montador .
Depurador GNU (GDB). É usado para depurar os aplicativos.
Ferramentas automáticas GNU: É um sistema de construção que contém algumas ferramentas utilitárias como Autoconf, Autoheader, Automake e Libtool.
Bisonte GNU: É um gerador de analisador como lex e yacc.
Processo do compilador GCC
O GCC compila e torna executável um programa nas quatro etapas a seguir:
Pré-processando: Nesta etapa, o pré-processador GNU (cpp.exe) cria um arquivo intermediário contendo o código-fonte. O pré-processador inclui os cabeçalhos (#include) e expande as macros (#define). Considere o comando abaixo:
cpp hello.c > hello.i
O comando acima criará um arquivo intermediário 'hello.i.'
Compilação: Nesta etapa, o código-fonte pré-processado é compilado em código assembly para um processador específico.
gcc -S hello.i
O comando acima criará um arquivo assembly 'hello.s.' A opção '-s' é usada para especificar a produção do código assembly em vez do código objeto.
Conjunto: O código assembly é convertido em código de máquina. Ele criará um arquivo objeto 'hello.o.'
as -o hello.o hello.s
Vinculador: O Linker (ld.exe) é a etapa final do processo do compilador. Ele vincula o código objeto ao código da biblioteca e produz um arquivo executável.
ld -o hello.exe hello.o
O comando acima criará um arquivo executável ‘hello.exe’.
Instalação do GCC no Linux
Por padrão, ele vem com a maioria das distribuições Linux. Podemos verificar isso executando o comando abaixo:
gcc -version
O comando acima exibirá a versão instalada da ferramenta GCC. Se não estiver instalado, siga as etapas abaixo para instalá-lo:
Passo 1: Atualize a lista de pacotes.
Para atualizar a lista de pacotes, execute o seguinte comando:
sudo apt update
Irá pedir a senha administrativa do sistema, digite a senha. Ele começará a atualizar o pacote do sistema. Considere o instantâneo de saída abaixo:
Passo 2: Instale o pacote build-essential.
senão java
Ele contém vários pacotes, como gcc, g++ e utilitário make. Execute o comando abaixo para instalá-lo:
sudo apt install build-essential
O comando acima instalará os pacotes necessários para o utilitário GCC. Agora podemos usar o utilitário GCC em nossa máquina. Considere o instantâneo de saída abaixo:
Passo 3: Verifique a instalação.
Para verificar a instalação, execute o comando gcc -version da seguinte forma:
gcc --version
Ele exibirá a versão instalada do utilitário GCC. Para exibir detalhes mais específicos sobre a versão, use a opção '-v'. Considere a saída abaixo:
Aqui, instalamos com sucesso o utilitário GCC. Vamos entender como usá-lo. Criaremos e executaremos alguns programas c usando GCC.
Execute o primeiro programa C pelo gcc
Crie um básico programa c 'Olá Mundo!'. Crie um arquivo 'hello.c' e coloque o código abaixo nele:
#include int main() { printf('Hello, world! '); return 0; }
Agora, compile o hello.c da seguinte maneira:
gcc hello.c
Se executarmos diretamente o hello.c, ocorrerá o erro. Torne-o executável, o arquivo executável padrão para o sistema Linux é a.out. Para executar o arquivo, execute o comando chmod da seguinte forma:
chmod a+x a.out
Agora, execute o programa c como:
./a.out
Considere a saída abaixo:
Exemplos de comandos GCC
Alguns exemplos úteis do comando gcc são os seguintes:
Por padrão, o comando gcc cria o arquivo objeto como 'a.fora .' Se você quiser alterar o nome do arquivo de saída padrão, use o '-o' opção.
Vamos executar o comando básico do gcc:
gcc hello.c
O comando acima irá gerar o arquivo objeto 'a.out.' Para especificar o nome do arquivo do objeto, execute o comando da seguinte forma:
gcc hello.c -o hello
Ele irá gerar o arquivo de saída 'olá'. Considere a saída abaixo:
Para habilitar todos os avisos na saída, use o '-Parede' opção com o comando gcc. Vamos criar uma variável na função principal de hello.c. Considere o código abaixo:
olá.c:
#include int main() { int a; printf('Hello, world! '); return 0; }
Se compilarmos o código acima usando a opção -Wall. Isso lançará os avisos. Execute o comando abaixo para compilar o arquivo:
gcc -wall hello.c
O comando acima exibirá os avisos. Considere a saída abaixo:
Só podemos produzir a saída gradual do processo de compilação.
Produza a saída do pré-processador
Podemos produzir apenas a saída do pré-processamento usando a opção '-E'. Considere o comando abaixo:
gcc -E hello.c > hello.i
Do comando acima, um arquivo 'olá.eu' que contém saída pré-processada é gerada. Considere a saída abaixo:
Produza o código assembly
Para produzir o código assembly, execute o comando com a opção '-S'. Considere o comando abaixo:
gcc -S hello.c > hello.s
O comando acima irá gerar o 'hello.s.' arquivo que contém o código assembly. Considere a saída abaixo:
Produza o código compilado
Shreya Ghoshal
Podemos produzir apenas o código compilado usando a opção '-C'. Considere o comando abaixo:
gcc -C hello.c
O comando acima irá gerar um arquivo 'a.out' contendo apenas o código de máquina ou código compilado. Considere a saída abaixo:
Produza todos os arquivos intermediários do processo de compilação
Podemos produzir todos os arquivos intermediários do processo de compilação usando a opção '-save-temp'. Considere a saída abaixo:
gcc -save-temps hello.c
O comando acima irá gerar todos os arquivos intermediários, bem como arquivos executáveis de uma só vez. Considere a saída abaixo:
Podemos exibir informações detalhadas de cada etapa realizada pelo comando gcc. Para fazer isso, execute o comando com a opção ‘-v’.
gcc -W -v hello.c
Considere o instantâneo de saída abaixo:
Discutimos alguns exemplos mais úteis do comando gcc. Como o comando gcc oferece um grande número de opções, você pode ficar preso em qualquer lugar enquanto o usa. Vamos ver como obter ajuda sozinho no terminal.
Manual do GCC
Se você ficar preso em algum lugar ao usar o comando gcc, poderá obter ajuda do seu terminal. Para acessar o manual a partir da linha de comando, execute o comando man da seguinte forma:
man gcc
O comando acima exibirá o manual que contém uma descrição e lista das opções suportadas com uma breve descrição. Considere o instantâneo de saída abaixo:
você pode rolar a saída para ler mais. Pressione a tecla 'h' para obter ajuda e q para sair do manual e voltar ao terminal.