Lingkungan pengembangan untuk C

10

Mencari ide tentang pengaturan lingkungan pengembangan yang nyaman dan produktif untuk pengembangan C. Saya menemukan mengedit C dengan Vim sangat membantu tetapi saya ingin mendapatkan sampel saran yang lebih luas.

zvolkov
sumber
@ txwikinger Setuju, saya hanya tidak ingin menjadi yang pertama dari polisi CW di sini :). Atau yang membuat tag [subjektif], yang harus mati dengan kematian yang menyakitkan
Michael Mrozek
Sudah ada komunitas wiki di sana. Jadi tidak ada alasan :) Dan saya telah membuat tag subjektif, sehingga semua kekhawatiran Anda hilang. Silakan periksa komunitas wiki sekarang :)
txwikinger
@txwikinger Sebenarnya tidak disarankan sekarang, jadi saya menghapusnya dari semua pos yang memilikinya
Michael Mrozek

Jawaban:

12
  • Emacs / Vim / Eclipse / ... - Secara pribadi saya adalah pengguna Emacs. Jika Anda menemukan urutan kontrol melelahkan kelingking Anda, cukup Viper-Mode-nya. Emacs terintegrasi dengan baik ke dalam unix, membuatnya sangat mudah untuk mengendalikan semuanya dari satu tempat. Vim juga melakukan pekerjaan yang baik di sini, tetapi saya menemukan Elisp menjadi bahasa ekstensi yang jauh lebih kuat daripada Vim Script. Seseorang dapat berbicara selama berjam-jam tentang semua cara untuk mengatur Emacs untuk pengembangan C. Mode Flymake telah disebutkan, dan merupakan awal yang sangat baik untuk berbagai hal. Saya tidak terbiasa dengan Eclipse, saya tidak menemukan itu menyisakan cukup ruang pada layar saya untuk kode, dan saya juga tidak suka seberapa kembungnya (pengguna Vim akan mengatakan hal yang sama tentang Emacs). Saya juga bias tidak adil terhadap apa pun yang ditulis di Jawa, karena alasan estetika murni.

  • Ctags - Menandai C Anda (atau banyak bahasa lain) berfungsi sehingga Vim atau Emacs atau apa pun dapat melakukan sedikit hyper-text linking di file Anda. Katakanlah Anda berkeliaran dan Anda melihat suatu fungsi dan Anda menggaruk-garuk kepala dengan mengatakan, "Apa yang dia lakukan lagi? Penamaannya agak kabur." Plink-plank-plunk, Anda dapat langsung menuju definisi itu.

  • Cmake / Gnu-Autotools - Make is great, tetapi pada titik tertentu Anda perlu sedikit abstrak sehingga proyek Anda dapat membangun sendiri pada semua jenis sistem yang Anda tidak memiliki cara pengujian. Jika Anda hanya membutuhkan orang untuk membuat kode Anda pada * nix, Autotools itu hebat, tetapi, sungguh, Anda harus membiasakan diri dengan Cmake. Tim Cmake membuat kode dalam setiap konfigurasi yang dimungkinkan dan memastikan bahwa Anda tidak harus melalui sakit kepala. Jika Anda ingin proyek Anda mudah diambil, beli yang lain, salah satu alat ini sangat penting.

  • Git / Mercurial / Subversion / ... - Anda bisa menghabiskan waktu berbulan-bulan untuk meneliti perangkat lunak kontrol versi, tetapi Anda mungkin hanya perlu menggunakan Git. Solid, terdistribusi, @ $! #% & Kernel Linux dilacak dengannya. Jika itu cukup baik untuk Linus, itu harus cukup baik untukmu. Saya juga mendengar hal-hal baik tentang Mercurial, tampaknya G ** gle menggunakannya, jadi mungkin tidak buruk. Beberapa orang tampaknya menyukai Subversion dan CVS dan yang lainnya. Saya tidak suka mereka karena mereka monolitik, yang bagi saya sangat tidak nyaman dan membatasi.

  • Stumpwm / wmii / XMonad / ... - Pada titik tertentu Anda akan menyadari bahwa apa pun yang dapat Anda lakukan untuk menjaga pekerjaan Anda tetap mengalir akan sangat meningkatkan output Anda. Salah satu cara terbaik untuk menjaga otak Anda dari melanggar konteks itu adalah untuk beralih ke ubin, manajer jendela KEYBOARD DRIVEN. Saya adalah penggemar pribadi StumpWM , Emacs dari window manager. Sepenuhnya diimplementasikan dalam proses Common Lisp on-the-fly yang dapat disesuaikan, apa pun yang Anda lakukan berulang-ulang dapat dibuang ke fungsi dan terikat pada perintah. Hal yang bagus. Saya tidak tahu banyak tentang yang lain, tapi mungkin uraian lebih lanjut lebih baik diserahkan ke utas lainnya. GUNAKAN KEYBOARD SEBAGAI BANYAK MUNGKIN.

  • GDB - Saya tidak terbiasa dengan debugger lain, tetapi ini tampaknya menjadi standar de-facto.

  • Valgrind - Saya tidak tahu apa pun yang melakukan hal ini dengan sangat baik. Valgrind sangat penting untuk semua perburuan profiling / kebocoran memori sial yang Anda inginkan. Anda tidak bisa menulis kode dengan malloc / calloc tanpa Valgrind.

Eli Frey
sumber
Saya akan menambahkan Penghitung Kinerja Linux ( perf.wiki.kernel.org/index.php/Main_Page ) dan / atau Oprofile ( oprofile.sourceforge.net/news ) ke daftar itu.
Mark Probst
Saya baru saja membuatnya menjadi wiki komunitas, sehingga Anda dapat menambahkannya di sana namun menurut Anda sesuai. Penghitung Kinerja adalah hanya Linux? Saya akan mencari untuk mengkonfirmasi / menolak ini, tetapi jika demikian ini setidaknya harus dicatat dalam saran itu.
Eli Frey
2

Saya bertahan dengan Vim untuk sementara waktu, ada baiknya mengetahui dasar-dasar VIM karena Anda akan selalu menemukan kotak UNIX di suatu tempat yang hanya memiliki itu, tetapi saya mencoba Emacs dan belum melihat ke belakang. Eclipse adalah alternatif 'modern', saya memiliki ketiganya di sistem saya!

Chris Huang-Leaver
sumber
2

Ini adalah pilihan pribadi, jadi saya pikir saya tidak bisa melakukan lebih dari memberi tahu Anda apa yang saya gunakan. Saya memiliki Emacs yang diatur dengan mode Flymake , yang secara berkala mengkompilasi file yang sedang Anda kerjakan dan mem-parsing output kompiler untuk mencari tahu kesalahan apa yang Anda buat. Itu lucu kesalahan / peringatan di buffer, dan menunjukkan pesan kesalahan kompilator terkait

Michael Mrozek
sumber
2

Saya menggunakan Kate (teks) gcc / avr-gcc dan make, dengan Git sebagai VC. Saya terutama melakukan hal-hal yang tertanam dalam c dan sisi komputer dengan python.

Ketil
sumber
2

Jika Anda melakukan pengembangan C di bawah Unix / Linux, Anda benar-benar harus menggunakan Cscope jika proyek tersebut berukuran signifikan.

Cscope adalah alat pengembang untuk menelusuri kode sumber - lompat ke foobardefinisi fungsi , temukan semua tempat di mana variabel foodireferensikan, temukan semua file termasuk bar.h, ubah semua kejadian barmenjadi baz, dll.

Juga, Anda menyebutkan Vim dalam posting Anda ... di sini adalah tutorial tentang menggunakan Vim & Cscope bersama-sama.

Dan
sumber
1

Anda dapat menggunakan Paket Netbeans C / C ++ yang bekerja dengan G ++ / GCC:

netbeans.org/features/cpp

Sajad Bahmani
sumber
1

favorit pribadi saya adalah exVim . Ada banyak plugin vim yang membuatnya sangat mudah digunakan dengan basis kode yang besar. Saya sampai membutuhkan sekitar 1 hari untuk mempelajari fitur-fiturnya tetapi itu akan sia-sia.

Hemant
sumber
1

Saya mengedit C dengan Vim di konsol. Saya menggunakan makefile dan memiliki sejumlah kompiler untuk menguji kode saya, termasuk gcc, clang (LLVM) dan icc. Hal-hal lain yang saya anggap bagian dari lingkungan pengembangan saya: penggunaan grep, debuggers dan valgrind. Bahasa scripting untuk bangunan yang lebih rumit. Git untuk kontrol versi.

Yang lebih penting dalam pikiran saya daripada apa yang Anda gunakan untuk mengedit kode adalah bagaimana Anda menyusun kode Anda. Bagaimana mengeluarkannya mungkin merupakan pertanyaan untuk Stack Overflow, tetapi, ketika Anda bertanya, saya sering memiliki direktori terpisah untuk kode objek bukan untuk distribusi dan folder lain untuk binar yang dihasilkan (y | ies). Saya memiliki folder pengujian yang berisi lebih banyak file C yang menggunakan semua kode generik yang saya tulis dan ini saya valgrind, bersama dengan file proyek akhir.

pengguna119
sumber
1

Anda dapat mencoba IDE Motor . Ini berdasarkan kutukan sehingga Anda harus merasa seperti di rumah (tm).) Ini juga agak sedih karena tidak dipertahankan selama 5 tahun sekarang sehingga sesuatu mungkin rusak. Meski masih - saya yakin ini patut dicoba.

Eimantas
sumber
1

Saya menggunakan gedit dengan terminal tertanam.

Silviu Bogan
sumber