Ambiente de desenvolvimento para C

10

Procurando idéias sobre como configurar um ambiente de desenvolvimento conveniente e produtivo para o desenvolvimento em C. Achei a edição C com o Vim muito útil, mas gostaria de obter uma amostra mais ampla de sugestões.

zvolkov
fonte
@txwikinger Concordo, eu simplesmente não queria ser o primeiro da polícia da CW aqui :). Ou aquele que cria a marca [subjetiva], que precisa sofrer uma morte dolorosa
Michael Mrozek
Já existem wikis da comunidade lá. Então, não tem desculpa :) E eu criei a tag subjetiva, então todas as suas preocupações se foram. Por favor, verifique o wiki da comunidade agora :)
txwikinger
@txwikinger Na verdade, está desanimado agora, então eu o removi de todas as postagens que o continham
Michael Mrozek

Respostas:

12
  • Emacs / Vim / Eclipse / ... - Pessoalmente, sou um usuário do Emacs. Se você achar que as seqüências de controle cansam seu dedo mindinho, basta usar o modo Viper. O Emacs é tão bem integrado ao unix, facilitando o controle de tudo em um só lugar. O Vim também faz um bom trabalho aqui, mas acho o Elisp uma linguagem de extensão muito mais poderosa que o Vim Script. Pode-se conversar por horas sobre todas as maneiras de configurar o Emacs para o desenvolvimento em C. O Modo Flymake foi mencionado e é um super começo para as coisas. Eu não estou familiarizado com o Eclipse, não acho que ele deixe espaço suficiente na minha tela para código, nem gosto de como está inchado (os usuários do Vim dirão o mesmo sobre o Emacs). Também sou injustamente inclinado contra qualquer coisa escrita em Java, por razões puramente estéticas.

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

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

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

  • Stumpwm / wmii / XMonad / ... - Em algum momento você perceberá que qualquer coisa que você possa fazer para manter seu trabalho fluindo melhorará bastante sua produção. Uma das melhores maneiras de impedir que o seu cérebro rompa seu contexto é mudar para o lado a lado, gerenciadores de janelas do KEYBOARD DRIVEN. Sou fã pessoal do StumpWM , o Emacs dos gerenciadores de janelas. 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 vinculada a comandos. Coisas boas. Não sei muito sobre nenhum dos outros, mas talvez seja melhor deixar mais elaboração para outra discussão. USE O TECLADO QUANTO POSSÍVEL.

  • GDB - Não estou familiarizado com outros depuradores, mas esse parece ser o padrão de fato.

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

Eli Frey
fonte
Eu adicionaria o Linux Performance Counter ( perf.wiki.kernel.org/index.php/Main_Page ) e / ou Oprofile ( oprofile.sourceforge.net/news ) a essa lista.
Mark Augst
Acabei de torná-lo um wiki da comunidade, para que você possa adicioná-los, da maneira que achar mais apropriada. Contador de desempenho parece ser apenas Linux? Vou procurar confirmar / negar isso, mas, se sim, isso deve ser observado pelo menos na sugestão.
Eli Frey
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ó possui isso, mas tentei o Emacs e não olhei para trás. Eclipse é uma alternativa 'moderna', tenho todos os três no meu sistema!

Chris Huang-Leaver
fonte
2

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

Michael Mrozek
fonte
2

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

Ketil
fonte
2

Se você está desenvolvendo C em Unix / Linux, é absolutamente necessário usar o Cscope se o projeto for de tamanho significativo.

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

Além disso, você mencionou o Vim em seu post ... aqui está um tutorial sobre como usar o Vim e o Cscope juntos.

Dan
fonte
1

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

netbeans.org/features/cpp

Sajad Bahmani
fonte
1

meu favorito pessoal é exVim . Possui muitos plugins vim, o que facilita o uso com uma grande base de código. Até demorar aproximadamente 1 dia para aprender suas características, mas valerá a pena.

Hemant
fonte
1

Eu edito C com o Vim no console. Emprego makefiles e tenho vários compiladores para testar meu código, 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 compilaçõ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ê o estrutura. Como explicar isso é provavelmente uma pergunta para o estouro de pilha, mas, como você pediu, geralmente tenho um diretório separado para o código do objeto, não para distribuição e outra pasta para o (s) binários resultantes. Eu tenho uma pasta de teste que contém mais arquivos C que usam todo o código genérico que estou escrevendo e esses são validados, junto com o arquivo final do projeto.

user119
fonte
1

Você pode experimentar o Motor IDE . É baseado em maldições, para que você se sinta em casa (tm).) Também é um pouco triste porque não está sendo mantida por cinco anos agora, então algumas coisas podem ser quebradas. Embora ainda - acredito que vale a pena tentar.

Eimantas
fonte
1

Eu uso o gedit com terminal incorporado.

Silviu Bogan
fonte