Desenvolvimento de Software: C não precisa de IDE no Linux

Voltando a falar de desenvolvimento de software no Linux (especialmente no Ubuntu), vamos começar a falar de codificação, e por um um nível mais baixo: C.

C é uma linguagem de baixo nível*, criada entre o final dos anos 60 e início dos anos 70, originalmente desenvolvida para a implementação do sistema Unix (originalmente escrito em PDP-7 Assembly, por Dennis Ritchie e Ken Thompson). Em 1973, com a adição do tipo struct, C tornou-se poderoso o bastante para a maioria das partes do núcleo do Unix, serem reescritas em C. [Wikipedia]

Por ser Unix-Like, o Linux possui muito C em sua estrutura e a maioria de seus aplicativos são construídos utilizando a linguagem C como padrão de projeto. Um dos exemplos de programas conhecidos que usa C é o próprio GIMP. Na verdade, a maioria das linguagens de programação atuais derivam de C, umas diretamente, como C++ ou C#, outras indiretamente, como o próprio Java.

Programar em C no Windows requer a instalação de um compilador GCC e configuração de variáveis de ambiente. No Linux, o GCC já vem instalado por padrão e não requer configurações adicionais.

Diferente do Java, que sua IDE já identifica erros de sintaxe, C não possui uma ferramenta poderosa tão popular quanto Java possui. Programar em C requer apenas um bloco de notas. Nada mais, mas no Windows é possível encontrar algumas ferramentas de programação em C, como o DEV C++. Pode se programar muito bem também com o Notepad++. E no Linux?

No Linux é possível programar em C através de seus próprios acessórios, como o Gedit que vem nos ambientes que usam GNOME, ou o Kate nos que usam KDE. Sua ventagem? Não requer a instalação de nenhum item adicional e ainda faz endentação de código, colorização de palavras reservadas da linguagem.

Para que seja feita e endentação e colorização correta de seu código, você pode selecionar a linguagem na parte inferior da janela do Gedit (à esquerda de “Largura das tabulações).

Compilar seus programas em C no Linux requer a utilização do Terminal. Para isso, através de linhas de comando (vou considerar que no papel de desenvolvedor ou estudante, você não tenha medo de linhas de comando e ainda já conheça os comandos básicos do Linux, como navegar por pastas e diretórios utilizando o Terminal) chame o compilador GCC passando como parâmetro do compilador algum dos itens abaixo:

g++ [opções] [parâmetros] arquivos.
-v ————————————————–Mostra detalhes da compilação.
-wall ———————————————-Mostra todos os warnings.
-onome ——————————————-Define o nome do arquivo de saída (opcional).
-w ————————————————-Elimina mensagens de warning.
-I/path ——————————————–Acrescenta path include.
-l/path/lib —————————————-Inclue biblioteca (lib).
-ggdb ———————————————-Informações extras para o gdb.
-O ————————————————-Optimiza o código (-O1,-O2,-O3).
-c—————————————————Somente compila (gera o arquivo *.o).
-S ————————————————–Somente compila o arquivo, não linka.
-lcomplex —————————————–Inclui biblioteca dos complexos.
-lm Include —————————————biblioteca matemática.
-E ————————————————–Cria somente o arquivo pré-processado.
-C ————————————————–Não inclui comentários no executável.
-g ————————————————–Gera informações para o debugger (código lento)
[Fonte: VoL]

Exemplo:

gcc -o nome_do_programa_depois_de_pronto nome_do_arquivo_fonte.c

Confira um exemplo de linha de comando de compilação de código-fonte C mais comum em Linux:

gcc -o simulador simulador.c

Existem IDE’s para criação de código C em Linux, mas na prática, não são tão funcionais quanto deveriam. Destaco o Code :: Blocks ou CodeLite, que pode ser instalada no Ubuntu através da Central de Programas do Ubuntu.

Para a aquisição de conhecimentos em C, recomendo a leitura do livro C Completo de Total – 3ª Edição de Herbert Schildt.

* Linguagem de baixo nível: Uma linguagem que está mais próxima da operação física do computador. São exemplos de linguagens de baixo nível Assembly e C (Assembly está num nível ainda mais baixo que C. C está abaixo de outras linguagens mais modernas). Assembly é uma linguagem que está presente em BIOS de placas-mãe. Já C é uma linguagem que pode estar presente em EFI’s, que substituem as BIOS em computadores mais modernos. Estas linguagens requerem um nível de abstração mais baixo no projeto de construção de softwares para poder ter um bom desempenho.

No próximo artigo sobre desenvolvimento de software, vamos falar de Java.

Anúncios

6 opiniões sobre “Desenvolvimento de Software: C não precisa de IDE no Linux”

  1. Existe uma incoerencia ao falar que C é uma linguagem de baixo nível, pois ela não é, ela possui caracteristicas que se aproxima de uma devido ao fato de conseguir acessar o hardware de forma mais direta; também existe outro detalhe errado assembler não é uma linguagem, e sim o montador, o programa que converte os programas escritos em assembly (esta que é a linguagem propriamente dita) para binário.

  2. Na realidade Gualther, eu não diria que é “incoerente” chamar C de linguagem de baixo nível, visto que com o passar do tempo esse termo vai virando relativo devido a abstração das novas linguagens em comparação as outras. Se compararmos o nível de abstração de Java/Ruby com C podemos dizer que C é (em comparação a essas duas linguagens) mais baixo nível. Por diversos motivos, convencionalmente dizem que C é uma linguagem de médio/alto nível justamente por essa comparação. Lembre-se que “linguagem de médio nível” não é um termo técnico e sim convencionado, pois a classificação por padrão das linguagens é entre Alto e Baixo nível, justamente por ser uma classificação subjetiva e sem limites bem definidos. Então como eu havia dito, algumas pessoas (inclusive eu) preferem classificar a linguagem C como sendo médio/alto nível do que como algum dos extremos, parece ser uma forma mais adequada ao propósito funcional da linguagem.

  3. Ótimo texto! Eu só sugeriria acrescentar o uso do Makefile e do comando make que facilita e muito a vida de qualquer programador (não só de C/C++).

    Para quem gosta de IDEs (para Linux) eu sugiro o Anjuta IDE. Eu prefiro usar meu velho e bom VIM 😀

  4. E como você faz debug somente no editor de texto? A execução passo-a-passo com inspeção de variáveis e do stack é uma das principais funções das IDEs, na minha opinião impossível de viver sem caso você seja um profissional e se importe com produtividade e com a qualidade do seu código.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s