Gnu c e c ++ compiladores para linux

O mais importante ferramenta de desenvolvimento de software em Linux é GCC - o GNU C e compilador C ++. Na verdade, GCC pode compilar três idiomas: C, C ++ e Objective-C (a linguagem que adiciona capacidades de programação orientada a objetos em C).

Você usa o mesmo gcc comando para compilar e ligar ambos os ++ arquivos de origem C e C. O compilador GCC suporta padrão ANSI C, tornando-o fácil de portar qualquer programa ANSI C para Linux. Além disso, se você já usou um compilador C em outros sistemas Unix, você deve se sentir em casa com o GCC.

usando GCC

Use o gcc comando para invocar GCC. Por padrão, quando você usa o gcc comando em um arquivo de origem, preprocesses CCG, compila e links para criar um arquivo executável. No entanto, você pode usar as opções do CCG para parar este processo numa fase intermédia.

Por exemplo, você pode invocar gcc usando o -c opção para compilar um arquivo de origem e gerar um arquivo objeto, mas não para realizar a etapa de link.

Usando GCC para compilar e vincular alguns arquivos de origem C é fácil. Suponha que você queira compilar e vincular um programa simples composta de dois arquivos de origem. Para realizar essa tarefa, use o seguinte código fonte do programa code-tarefa que está armazenado no arquivo area.c calcula a área de um círculo cujo raio é especificado na linha de comando.

Video: Como programar y compilar C++ desde la terminal en Ubuntu 14.04

Compilar programas em C ++

GNU CC é um combinado C e compilador C ++, de modo que o gcc comando também pode compilar arquivos de origem C ++. GCC usa a extensão do arquivo para determinar se um arquivo é C ou C ++. arquivos C têm uma minúscula .c extensão, enquanto que C ++ arquivos terminam com .C ou .cpp.



Apesar de gcc comando pode compilar um arquivo C ++, que comando não ligar automaticamente com várias bibliotecas de classe que os programas C ++ normalmente exigem. Compilar e ligar um programa C ++, utilizando o comando g ++ é fácil, porque ele é executado gcc com opções apropriadas.

Explorando opções GCC

Aqui está a sintaxe básica do gcc comando:

Opções gcc nomes de arquivos

Cada opção começa com um hífen (-) e, geralmente, tem um nome longo, como -funsigned-char ou -finline-funções. Muitas opções comumente utilizados são curtos, no entanto, tais como -c, para compilar somente, e -g, para gerar informações de depuração (necessário para depurar o programa usando o depurador GNU, gdb).

Video: Preview: Nuevo compilador Linux para Delphi

Você pode ver um resumo de todas as opções do CCG, digitando o seguinte comando em uma janela de terminal:

homem gcc

Em seguida, você pode navegar através das opções do CCG comumente usados. Normalmente, você não tem que fornecer opções GCC explicitamente porque as configurações padrão são muito bem para a maioria das aplicações. Esta tabela lista algumas das opções GCC você pode usar.

Opções do CCG comuns
OpçãoSignificado
-ansiSuporta apenas sintaxe padrão ANSI C. (Esta opção desativa
algumas características específicas-C GNU, tais como the_asm e_tipo de
palavras-chave). Quando utilizados com o g ++, suporta apenas C ISO-++ padrão.
-cCompila e gera apenas o arquivo objeto.
-DMACRODefine a macro com a string “1”
como seu valor.
-DMACRO = defnDefine a macro como defn, Onde
defn é alguma cadeia de texto.
-EExecuta apenas o pré-processador C.
-pousio-single-precisionExecuta todas as operações matemáticas em precisão simples.
-FPCC-struct-retornoretorna todos struct e União valores na memória, em vez de
registradores. (Voltando valores esta maneira é menos eficiente, mas em
menos&rsquo-s compatível com outros compiladores.)
-fPICGera código independente de posição (PIC) apropriado para utilização em um
biblioteca compartilhada.
-freg-struct-retornoQuando possível, os retornos struct e
União valoriza registros.
-gGera informações de depuração. (O depurador GNU pode usar este
em formação.)
-I DIRETÓRIOPesquisa o diretório especificado para arquivos que você incluir pelo
usando o #incluir pré-processador
directiva.
-L DIRETÓRIOPesquisa o diretório especificado para bibliotecas.
-l BIBLIOTECAProcura a biblioteca especificada quando ligar.
-mcpu = cputypeOtimiza o código para um processador específico. (cputype pode levar muitos valores diferentes -
alguns dos mais comuns são i386, i486, i586, i686,
Pentium, Pentium Pro, pentium2, pentium3, pentium4.
)
-o ARQUIVOGera o arquivo de saída especificado (usado para designar o nome
de um arquivo executável).
-00 (dois zeros)não otimizar.
-O ou -O1 (letra O)Otimiza o código gerado.
-O2 (Letra O)Otimiza ainda mais.
-O3 (Letra O)Executa otimizações além daqueles feito por -O2
-Os (Letra O)Optimiza por tamanho (para reduzir a quantidade total de código).
-pedanteGera erros se todas as extensões não-ANSI-padrão são
usava.
-pgAdiciona código extra para o programa para que, quando executado, este programa
gera informações que o gprof
programa pode usar para exibir os detalhes de temporização para várias partes do
programa.
-compartilhadoGera um arquivo de objeto compartilhado (normalmente usado para criar um
biblioteca compartilhada).
-UMACROUndefines as macros especificadas.
-vExibe o número da versão GCC.
-Wdoesn&rsquo-t gerar mensagens de aviso.
-W1, OPÇÃOpassa a OPÇÃO cadeia (contendo múltiplos
opções separadas por vírgulas) para o ligante. Para criar uma biblioteca compartilhada
nomeado libXXX.so.1, por exemplo, utilizar o
seguinte sinalizador: -WL,-soname, libXXX.so.1.

Publicações relacionadas