ti-enxame.com

Ambiente de desenvolvimento para c

Procurando por idéias sobre a criação de um ambiente de desenvolvimento conveniente e produtivo para o desenvolvimento c. Eu encontrei c Editing com vim Muito útil, mas gostaria de obter uma amostragem mais ampla de sugestões.

10
zvolkov
  • EMACS / VIM / Eclipse /... - Pessoalmente, sou um usuário emacs. Se você encontrar as sequências de controle pneumam seu mindinho, apenas o modo Viper. O Emacs é tão bem integrado ao Unix, tornando muito fácil controlar tudo de um lugar. Vim também faz um bom trabalho aqui, mas acho que Elisp é uma linguagem de extensão muito mais poderosa do que o roteiro VIM. Pode-se falar por horas sobre todas as maneiras de criar emacs para o desenvolvimento c. Modo Flymake foi mencionado e é um super começo às 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 gosto de como é inchado (os usuários da VIM dirão a mesma coisa sobre o Emacs). Eu também estou 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 Vim ou Emacs ou qualquer outra coisa possa fazer um pouco de links de hiper-texto em seus arquivos. Diga que você está vagando e você vê uma função e coçando sua cabeça dizendo "O que isso faz novamente? A nomeação é um pouco vaga". Plink-Plunk-Plunk, você pode zap direto para sua definição.

  • cmake / GNU-AutoTools - Faça é ó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 maneira de testar. Se você precisar de pessoas para construir seu código em um * NIX, o AutoTools é ótimo, mas, na verdade, você deve se familiarizar com Cmake de qualquer maneira. O código de compilação da equipe Cmake em todas as configurações concebíveis possíveis e certifique-se de não ter que passar pela dor de cabeça. Se você quiser que seu projeto seja facilmente apanhado, uma dessas ferramentas é crucial.

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

  • Stumpwm / WMII / xMonad /... - Em algum momento você vai perceber que qualquer coisa que você possa fazer para manter seu trabalho fluindo vai melhorar muito sua produção. Uma das melhores maneiras de manter seu cérebro de quebrar o contexto é mudar para ladrilhos, gerenciadores de janela orientados para teclado. Eu sou um fã pessoal de Stumpwm , o emacs de gerentes de janela. Totalmente implementado em um processo lisp comum personalizável on-the-fly, qualquer coisa que você se encontre fazendo repeticiosamente pode ser banida em funções e ligadas aos comandos. Coisas boas. Eu não sei muito sobre nenhum dos outros, mas talvez a elaboração adicional seja melhor para outro segmento. Use o teclado tanto quanto possível.

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

  • Valgrind - Eu não sei mais nada que faça o que isso faz tão bem. Valgrind é crucial para todas aquelas caçadas de vazamento de criação de perfis/memória que você deseja continuar. Você simplesmente não pode escrever código com malloc/calloc sem valgrind.

12
Eli Frey

Se você estiver fazendo desenvolvimento C no Unix/Linux, você terá que estar usando CSCOP Se o projeto é algum tamanho significativo.

O CSCOPE é uma ferramenta do desenvolvedor para navegar código-fonte - Ir para funcionar foobar 's Definição, Encontre todos os lugares onde a variável foo é referenciada, localize todos os arquivos, incluindo bar.h, altere todas as ocorrências de bar em baz, etc.

Além disso, você mencionou vim em sua postagem ... Aqui está um tutorial em usar o VIM & CSCOPE juntos.

2
Dan

Eu persisti com o vim por um tempo, vale a pena saber o VIM Básico como você sempre encontrará uma caixa Unix em algum lugar que só tem isso, mas eu tentei emacs e não olhei para trás. Eclipse é Uma alternativa "moderna", tenho todos os três no meu sistema!

2
Chris Huang-Leaver

É muito uma preferência pessoal, então eu não acho que posso fazer muito mais do que lhe dizer o que eu uso. Eu tenho EMACs configurado com 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 alegre os erros/avisos no buffer e mostra a mensagem de erro do compilador associada

2
Michael Mrozek

Eu uso kate (texto) gcc/avr-gcc e fazer, com o Git como vc. Eu principalmente as coisas incorporadas em C e no lado do computador em Python.

2
Ketil

Eu uso Gedit com terminal embutido.

1
Silviu Bogan

Você pode usar o pacote NetBeans C/C++ que funcione com G ++/GCC:

netbeans.org/features/cpp .

1
Sajad Bahmani

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

1
Hemant

Eu edito C com vim no console. Eu coloco makefiles e tenho vários compiladores para testar meu código contra, incluindo GCC, Clang (LLVM) e ICC. Outras coisas que considero parte do meu ambiente de desenvolvimento: o uso de grep, depuradores e valgrind. Uma linguagem de script para construções mais complicadas. Git para controle de versão.

Mais importante em minha mente do que o que você usa para editar o código é como você estrutura seu código. Como colocar isso é provavelmente uma pergunta para o estouro de pilha, mas, como você perguntou, muitas vezes tenho um diretório separado para o código de objeto não para distribuição e outra pasta para o binário 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 eu valgrind, junto com o arquivo final do projeto.

1
user119

Você pode tentar IDE do motor . É maldições baseadas, 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 algo pode ser quebrado. Embora ainda - eu acredito que vale a pena tentar.

1
Eimantas