Ambiente de desenvolvimento para C

10

Procurando idéias sobre a criação de um ambiente de desenvolvimento conveniente e produtivo para o desenvolvimento de C. Eu achei C edição com o Vim muito útil, mas eu gostaria para obter uma amostragem mais ampla de sugestões.

    
por zvolkov 11.08.2010 / 00:59

10 respostas

11

  • Emacs / Vim / Eclipse / ... - Pessoalmente eu sou um Usuário do Emacs. Se você achar que as sequências de controle cansam seu mindinho, apenas o Viper-Mode. O Emacs está tão bem integrado ao unix, tornando muito fácil controlar tudo de um só lugar. O Vim também faz um bom trabalho aqui, mas acho que o Elisp é uma linguagem de extensão muito mais poderosa que o Script do Vim. Pode-se falar por horas sobre todas as formas de configurar o desenvolvimento do Emacs for C. O Flymake Mode foi mencionado, e é um super começo para as coisas. Eu não estou familiarizado com o Eclipse, eu não acho que deixa espaço suficiente na minha tela para o código, nem eu gosto de como é inchado (usuários do Vim vão dizer a mesma coisa sobre o Emacs). Eu também sou injustamente tendencioso contra qualquer coisa escrita em Java, por razões puramente estéticas.

  • Ctags - Tags suas funções C (ou muitas outras línguas) para que o Vim ou Emacs ou qualquer outra coisa possa faça um pouco de hipertexto nos seus arquivos. Digamos que você está vagando e vê uma função e está coçando a cabeça dizendo "O que isso faz de novo? A nomeação é um pouco vaga". Plunk-plank-plunk, você pode ir direto para sua definição.

  • Cmake / Gnu-Autotools - Make é ótimo, mas em algum momento você precisa abstrair as coisas um pouco para que seu projeto possa se construir em todos os tipos de sistemas que você não tem como testar. Se você só precisa de pessoas para construir seu código em um * nix, o Autotools é ótimo, mas na verdade você deve se familiarizar com o Cmake de qualquer maneira. A equipe do Cmake constrói o código em todas as configurações possíveis e garante que você não precise passar pela dor de cabeça. Se você quiser que seu projeto seja facilmente adquirido, compre outras, uma destas ferramentas é crucial.

  • Git / Mercurial / Subversion / ... - Você pode passar meses pesquisando a versão software de controle, mas você provavelmente deve apenas ir com o Git. É sólido, é distribuído, o @ $! #% & Linux Kernel é rastreado com ele. Se for bom o suficiente para Linus, tem que ser bom o suficiente para você. Eu também ouço coisas boas sobre o Mercurial, aparentemente G ** gle as usa, então provavelmente não é ruim. Algumas pessoas parecem gostar do Subversion, do CVS e de outras coisas. Eu não gosto deles porque são monolíticos, o que para mim é muito inconveniente e limitante.

  • Stumpwm / wmii / XMonad / ... - Em algum momento você vai perceber que qualquer coisa que você pode fazer manter seu fluxo de trabalho vai melhorar muito sua produção. Uma das melhores maneiras de evitar que o seu cérebro quebre o contexto é mudar para os gerenciadores de janela do KEYBOARD DRIVEN. Eu sou um fã pessoal do StumpWM, o Emacs dos gerenciadores de janela. Totalmente implementado em um processo Common Lisp personalizável on-the-fly, qualquer coisa que você se encontra fazendo repetidamente pode ser banida em funções e ligada a comandos. Coisas boas. Eu não sei muito sobre nenhum dos outros, mas talvez seja melhor deixar uma outra elaboração para outro tópico. USE TECLADO TANTO O POSSÍVEL.

  • GDB - Eu não estou familiarizado com outros depuradores, mas este parece ser o de fato padrão.

  • Valgrind - Eu não sei de mais nada que faça o que isso faz tão bem. O Valgrind é crucial para todos aqueles caçadores de fuga de perfil / memória traquinas que você deseja seguir. Você simplesmente não pode escrever código com malloc / calloc sem Valgrind.

por 05.10.2010 / 06:46
2

Eu persisti com o Vim por um tempo, vale a pena conhecer o básico do VIM, pois você sempre encontrará uma caixa UNIX em algum lugar que só tenha isso, mas eu tentei o Emacs e não olhei para trás. Eclipse é uma alternativa 'moderna', eu tenho todos os três no meu sistema!

    
por 10.08.2010 / 23:10
2

É uma preferência muito pessoal, então não acho que posso fazer muito mais do que dizer o que eu uso. Eu tenho o Emacs configurado com o modo Flymake , que periodicamente compila o arquivo em que você está trabalhando e analisa a saída do compilador para descobrir quais erros você fez. Ele elimina os erros / avisos no buffer e mostra a mensagem de erro do compilador associado

    
por 10.08.2010 / 23:12
2

Se você está fazendo o desenvolvimento C no Unix / Linux, você absolutamente tem que estar usando o Cscope se o projeto tiver algum tamanho significativo .

O Cscope é uma ferramenta do desenvolvedor para navegar pelo código-fonte - pule para a definição da função foobar , encontre todos os locais onde a variável foo é referenciada, encontre todos os arquivos incluindo bar.h , altere todas as ocorrências de bar em baz , etc.

Além disso, você mencionou o Vim em sua postagem ... aqui está um tutorial sobre como usar o Vim & Cscope juntos.

    
por 11.08.2010 / 17:01
1

Você pode usar o pacote Netbeans C / C ++ que funciona com o G ++ / GCC:

netbeans.org/features/cpp

    
por 10.08.2010 / 23:11
1

meu favorito pessoal é exVim . Tem muitos plugins vim que o torna muito fácil de usar com base de código grande. Eu levo aproximadamente 1 dia para aprender suas características, mas valerá a pena.

    
por 10.08.2010 / 23:15
1

Eu edito o C com o Vim no console. Eu uso makefiles e tenho um número de compiladores para testar meu código, incluindo gcc, clang (LLVM) e icc. Outras coisas que considero fazem parte do meu ambiente de desenvolvimento: o uso do grep, debuggers e valgrind. Uma linguagem de script para construções mais complicadas. Git para controle de versão.

Mais importante em minha mente do que você usa para editar o código é como você estrutura seu código. Como resolver isso é provavelmente uma questão para o Stack Overflow, mas, como você pediu, muitas vezes eu tenho um diretório separado para código de objeto não para distribuição e outra pasta para o binar resultante (y | ies). Eu tenho uma pasta de teste que contém mais arquivos C que usam todo o código genérico que estou escrevendo e estes valgrind, junto com o arquivo de projeto final.

    
por 10.08.2010 / 23:16
1

Eu uso o Kate (texto) gcc / avr-gcc e make, com o Git como VC. Eu principalmente faço coisas incorporadas em c e no lado do computador em python.

    
por 11.08.2010 / 01:39
1

Você pode tentar IDE do Motor . É curses baseado então você deve se sentir em casa (tm).) Também é um pouco triste porque não está sendo mantido por 5 anos agora, então algumas coisas podem ser quebradas. Embora ainda - eu acredito que vale a pena tentar.

    
por 11.08.2010 / 05:54
1

Eu uso o gedit com terminal incorporado.

    
por 11.08.2010 / 14:41