C için geliştirme ortamı


10

C gelişimi için uygun ve üretken bir geliştirme ortamı oluşturma konusunda fikirler aramak. Buldum C Vim ile düzenleme çok yararlı ama önerilerin daha geniş bir örnekleme almak istiyorum.


@txwikinger Kabul ediyorum, burada CW polisinin ilk olmak istemedim :). Ya da ağrılı bir ölümle ölmesi gereken [sübjektif] etiketi oluşturmak için
Michael Mrozek

Orada zaten topluluk wiki'leri var. Yani mazeret yok :) Ve ben öznel etiketi oluşturdum, bu yüzden tüm endişeleriniz gitti. Lütfen topluluk
wisini

@txwikinger Aslında cesareti kırıldı , bu yüzden tüm mesajlardan kaldırdım
Michael Mrozek

Yanıtlar:


12
  • Emacs / Vim / Eclipse / ... - Şahsen ben bir Emacs kullanıcısıyım. Kontrol sekanslarının pembemsi yorulduğunu görürseniz, sadece Viper-Mode'u yukarı kaldırın. Emacs, unix'e o kadar iyi entegre edilmiştir ki, her şeyi tek bir yerden kontrol etmeyi çok kolay hale getirir. Vim de burada iyi bir iş çıkarıyor, ancak Elisp'in Vim Script'ten çok daha güçlü bir uzantı dili olduğunu düşünüyorum. Kişi C gelişimi için Emacs kurmanın tüm yolları hakkında saatlerce konuşabilir. Flymake Modundan bahsedildi ve bu şeylere süper bir başlangıç. Eclipse ile tanışmıyorum, kodum için ekranımda yeterli alan bulamıyorum, ne kadar şişirilmiş olduğunu da sevmiyorum (Vim kullanıcıları Emacs hakkında aynı şeyi söyleyecekler). Ayrıca tamamen estetik nedenlerle Java'da yazılmış herhangi bir şeye haksız yere önyargılıyım.

  • Ctags - C (veya diğer birçok dil) işlevlerinizi etiketler, böylece Vim veya Emacs veya dosyalarınızda biraz hiper metin bağlantısı yapabilen her şey. Diyelim ki etrafta dolaşıyorsunuz ve bir işlev görüyorsunuz ve başınızı kaşıyorsunuz, "Bu tekrar ne yapıyor? Adlandırma biraz belirsiz." Plink-plank-plunk, doğrudan tanımına zap yapabilirsiniz.

  • Cmake / Gnu-Autotools - Yapmak harika, ama bir noktada işleri biraz soyutlamanız gerekiyor, böylece projeniz kendini test edemeyeceğiniz her türlü sistem üzerine inşa edebiliyor. Kodunuzu bir * nix üzerinde oluşturmak için sadece insanlara ihtiyacınız varsa, Autotools harika, ama gerçekten de Cmake ile tanışmalısınız. Cmake ekibi akla gelebilecek her yapılandırmada kod oluşturur ve baş ağrısından geçmek zorunda olmadığınızdan emin olun. Projenizin kolayca alınmasını istiyorsanız başkalarını satın alın, bu araçlardan biri çok önemlidir.

  • Git / Mercurial / Subversion / ... - Sürüm kontrol yazılımını araştırmak için aylar harcayabilirsiniz, ancak muhtemelen Git ile gitmelisiniz. Sağlam, dağıtılmış, @ $! #% Ve Linux Çekirdeği onunla izleniyor. Linus için yeterince iyiyse, sizin için yeterince iyi olmalı. Ayrıca Mercurial hakkında iyi şeyler duyuyorum, görünüşe göre G ** gle onları kullanıyor, bu yüzden muhtemelen kötü değil. Bazı insanlar Subversion ve CVS'den hoşlanıyor gibi görünüyor. Onları sevmiyorum çünkü monolitik, ki bu bana çok rahatsız edici ve sınırlayıcı.

  • Stumpwm / wmii / XMonad / ... - Bir noktada işinizin akışını sağlamak için yapabileceğiniz her şeyin çıktılarınızı büyük ölçüde artıracağını anlayacaksınız. Beyninizin bağlamını kırmasını önlemenin en iyi yollarından biri, KLAVYE DRIVEN pencere yöneticilerine fayans yapmaya geçmek. Ben pencere yöneticilerinin Emacs StumpWM kişisel bir hayranıyım . Anında özelleştirilebilir Ortak Lisp işleminde tamamen uygulanır, kendinizi tekrar tekrar yaptığınız her şey işlevlere alınabilir ve komutlara bağlanabilir. Harika şeyler. Ben diğerleri hakkında çok şey bilmiyorum, ama belki daha ayrıntılı başka bir iş parçacığına bırakılır. KLAVYEYİ MÜMKÜN OLDUĞU GİBİ KULLANIN.

  • GDB - Diğer hata ayıklayıcılara aşina değilim, ama bu fiili standart gibi görünüyor.

  • Valgrind - Bunun ne yaptığını iyi yapan başka bir şey bilmiyorum. Valgrind, devam etmek istediğiniz tüm sinir bozucu profil oluşturma / bellek sızıntısı avları için çok önemlidir. Valgrind olmadan malloc / calloc ile kod yazamazsınız.


Bu listeye Linux Performans Sayacı ( perf.wiki.kernel.org/index.php/Main_Page ) ve / veya Oprofile ( oprofile.sourceforge.net/news ) eklerdim .
Mark Probst

Sadece bir topluluk wiki'si yaptım, böylece bunları uygun olduğunu ancak buna ekleyebilirsin. Performans Sayacı yalnızca Linux mu görünüyor? Bunu onaylamak / reddetmek için bakacağım, ancak eğer öyleyse bu en azından onun önerisinde belirtilmelidir.
Eli Frey

2

Bir süre Vim ile ısrar ettim, VIM temellerini bilmeye değer, çünkü her zaman sadece buna sahip bir yerde bir UNIX kutusu bulacaksınız, ancak Emacs'ı denedim ve geriye bakmadım. Tutulma 'modern' bir alternatif, üçü de sistemimde!


2

Bu çok kişisel bir tercih, bu yüzden size ne kullandığımı söylemekten çok daha fazlasını yapabileceğimi sanmıyorum. Periyodik olarak üzerinde çalıştığınız dosyayı derleyen ve hangi hataları yaptığınızı anlamak için derleyici çıktısını ayrıştıran Flymake modu ile ayarlanmış Emacs'ım var . Arabellekteki hataları / uyarıları vurgular ve ilişkili derleyici hata mesajını gösterir


2

Kate'i (text) gcc / avr-gcc kullanıyorum ve Git'i VC olarak yapıyorum. Ben esas olarak python c ve bilgisayar tarafında gömülü şeyler yapmak.


2

Unix / Linux altında C geliştirme yapıyorsanız , proje önemli bir boyutta ise kesinlikle Cscope kullanmanız gerekir .

Cscope, kaynak koduna göz atmak için bir geliştiricinin aracıdır - işlevin foobartanımına atlayın , değişkenin fooreferans aldığı tüm yerleri bulun bar.h, dahil tüm dosyaları bulun , bariçine tüm oluşumlarını değiştirin baz, vb.

Ayrıca, yazınızda Vim'den bahsettiniz ... işte Vim & Cscope'u birlikte kullanma hakkında bir eğitim .



1

benim kişisel favorim exVim . Büyük kod tabanı ile kullanımı çok kolaylaştıran birçok vim eklentisi var. Özelliklerini öğrenmek için yaklaşık 1 gün sürer ama buna değecektir.


1

Konsolda C'yi Vim ile düzenlerim. Ben gfc, clang (LLVM) ve icc dahil olmak üzere kodumu test etmek için makefiles ve bir dizi derleyici var. Geliştirme ortamımın bir parçası olarak düşündüğüm diğer şeyler: grep, hata ayıklayıcı ve valgrind kullanımı. Daha karmaşık yapılar için komut dosyası dili. Sürüm kontrolü için Git.

Zihnimde, kodu düzenlemek için kullandığınızdan daha önemli olan, kodunuzu nasıl yapılandırdığınızdır. Bunu nasıl ortaya koyacağınız muhtemelen Yığın Taşması için bir sorudur, ancak istediğiniz gibi, dağıtım için olmayan nesne kodu için ayrı bir dizine ve sonuçtaki binar (y | ies) için başka bir klasöre sahibim. Son proje dosyası ile birlikte yazdığım tüm genel kodu ve bu ben valgrind kullanan daha fazla C dosyaları içeren bir test klasörü var.


1

Motor IDE'yi deneyebilirsiniz . Küfürlere dayanıyor, bu yüzden kendinizi evinizde gibi hissetmelisiniz (tm).) Aynı zamanda biraz üzücü çünkü 5 yıldır korunmuyor, bu yüzden bazı şeyler bozulabilir. Yine de - Bence denemeye değer.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.