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).
Conteúdo
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ção | Significado |
---|---|
-ansi | Suporta 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. |
-c | Compila e gera apenas o arquivo objeto. |
-DMACRO | Define a macro com a string “1” como seu valor. |
-DMACRO = defn | Define a macro como defn, Onde defn é alguma cadeia de texto. |
-E | Executa apenas o pré-processador C. |
-pousio-single-precision | Executa todas as operações matemáticas em precisão simples. |
-FPCC-struct-retorno | retorna 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.) |
-fPIC | Gera código independente de posição (PIC) apropriado para utilização em um biblioteca compartilhada. |
-freg-struct-retorno | Quando possível, os retornos struct e União valoriza registros. |
-g | Gera informações de depuração. (O depurador GNU pode usar este em formação.) |
-I DIRETÓRIO | Pesquisa o diretório especificado para arquivos que você incluir pelo usando o #incluir pré-processador directiva. |
-L DIRETÓRIO | Pesquisa o diretório especificado para bibliotecas. |
-l BIBLIOTECA | Procura a biblioteca especificada quando ligar. |
-mcpu = cputype | Otimiza 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 ARQUIVO | Gera 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). |
-pedante | Gera erros se todas as extensões não-ANSI-padrão são usava. |
-pg | Adiciona 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. |
-compartilhado | Gera um arquivo de objeto compartilhado (normalmente usado para criar um biblioteca compartilhada). |
-UMACRO | Undefines as macros especificadas. |
-v | Exibe o número da versão GCC. |
-W | doesn&rsquo-t gerar mensagens de aviso. |
-W1, OPÇÃO | passa 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. |