C ++ IDE untuk Linux? [Tutup]


209

Saya ingin memperluas wawasan pemrograman saya ke Linux. Toolset dasar yang baik dan dapat diandalkan itu penting, dan apa yang lebih mendasar dari sebuah IDE?

Saya dapat menemukan topik-topik SO ini:

Saya tidak mencari IDE yang ringan . Jika sebuah IDE bernilai uang, maka saya akan membayarnya, jadi tidak perlu gratis.

Pertanyaan saya, lalu:

Apa bagusnya, IDE pemrograman C ++ tersedia untuk Linux?

Minimumnya cukup standar: penyorotan sintaksis, penyelesaian kode (seperti intellisense atau mitra Eclipse-nya) dan debugging terintegrasi (misalnya, breakpoint dasar).

Saya telah mencarinya sendiri, tetapi ada begitu banyak sehingga hampir tidak mungkin untuk memisahkan yang baik dari yang buruk dengan tangan, terutama untuk orang seperti saya yang memiliki sedikit pengalaman pengkodean C ++ di Linux. Saya tahu bahwa Eclipse mendukung C ++ , dan saya sangat suka IDE untuk Java itu, tetapi apakah ada gunanya untuk C ++ dan apakah ada sesuatu yang lebih baik?

Posting kedua sebenarnya memiliki beberapa saran bagus, tetapi apa yang saya lewatkan adalah apa yang sebenarnya membuat IDE yang disarankan begitu baik bagi pengguna, apa kelebihan (dis) nya?

Mungkin karena itu pertanyaan saya adalah:

IDE apa yang Anda usulkan (berdasarkan pengalaman Anda), dan mengapa?


1
Saya kira, inilah pertanyaan ke 4 "IDE apa yang harus saya gunakan di Linux" dalam satu atau dua hari.
Ben Collins

Mungkin Anda harus melihat pada tanggal pertanyaan ini diajukan ... atau arahkan pertanyaan yang lebih baru ke sini
sven

Dalam rilis terakhir, Eclipse telah mengintegrasikan eclipse.org/linuxtools ke dalam kereta rilisnya - proyek itu bertujuan untuk menjadikan Eclipse IDE C / C ++ yang lebih lengkap di Linux dengan mengintegrasikan alat khusus Linux.
Jean Hominal

Jawaban:


259

Awalnya: kebingungan

Ketika awalnya menulis jawaban ini, saya baru saja beralih dari Visual Studio (dengan pengalaman bertahun-tahun) ke Linux dan hal pertama yang saya lakukan adalah mencoba menemukan IDE yang masuk akal. Pada saat ini tidak mungkin: tidak ada IDE yang baik.

Epiphany: UNIX adalah IDE. Semua itu. 1

Dan kemudian saya menyadari bahwa IDE di Linux adalah baris perintah dengan alat-alatnya:

  • Pertama, Anda mengatur shell Anda
    • Bash, dalam kasus saya, tetapi banyak orang lebih suka
    • ikan atau
    • (Oh My) Zsh ;
  • dan editor Anda; pilih racun Anda - keduanya canggih:

Bergantung pada kebutuhan Anda, Anda kemudian harus menginstal dan mengkonfigurasi beberapa plugin untuk membuat editor berfungsi dengan baik (itulah satu-satunya bagian yang mengganggu). Misalnya, sebagian besar programmer di Vim akan mendapat manfaat dari plugin YouCompleteMe untuk pelengkapan otomatis cerdas.

Setelah selesai, shell adalah antarmuka perintah Anda untuk berinteraksi dengan berbagai alat - Debuggers (gdb), Profiler (gprof, valgrind), dll. Anda mengatur proyek Anda / membangun lingkungan menggunakan Make , CMake , SnakeMake atau salah satu dari berbagai alternatif. Dan Anda mengelola kode Anda dengan sistem kontrol versi (kebanyakan orang menggunakan Git ). Anda juga menggunakan tmux (sebelumnya juga layar) untuk multipleks (= pikirkan beberapa jendela / tab / panel) dan tahan sesi terminal Anda.

Intinya adalah bahwa, berkat shell dan beberapa konvensi penulisan alat, semua ini terintegrasi satu sama lain . Dan dengan demikian shell Linux adalah lingkungan pengembangan yang benar-benar terintegrasi , sepenuhnya setara dengan IDE modern lainnya. (Ini tidak berarti bahwa masing-masing IDE tidak memiliki fitur yang mungkin kurang dimiliki oleh baris perintah, tetapi kebalikannya juga benar.)

Untuk masing-masing

Saya tidak bisa melebih-lebihkan seberapa baik fungsi alur kerja di atas setelah Anda terbiasa. Tetapi beberapa orang hanya lebih menyukai editor grafis, dan pada tahun-tahun sejak jawaban ini awalnya ditulis, Linux telah memperoleh serangkaian IDE grafis yang sangat baik untuk beberapa bahasa pemrograman yang berbeda (tetapi tidak, sejauh yang saya ketahui, untuk C ++). Jangan coba-coba mereka meskipun - seperti saya - Anda akhirnya tidak menggunakannya. Ini hanya pilihan kecil dan bias:

Perlu diingat bahwa daftar ini jauh dari lengkap.


1 Saya mencuri judul itu dari komentar dsm.

2 Saya biasa merujuk ke Vim di sini. Dan sementara Vim polos masih lebih dari cukup, Neovim adalah restart yang menjanjikan, dan itu memodernisasi beberapa kutil lama.


223
saya sangat tidak setuju. ide yang layak itu penting, apa pun yang sedang Anda kerjakan. secara drastis meningkatkan produktivitas. saya menggunakan kode kunci dan menemukan bahwa kembali ke VI hampir mustahil. Saya telah membuat kode pada Mac, Win dan Linux, dan meskipun saya menemukan visual studio menjadi IDE terbaik, kode kunci sudah dekat.
DavidG

35
David, mungkin Anda bisa merinci (menjawab sendiri ...) apa sebenarnya yang Anda lewatkan dari toolchain yang saya jelaskan sebagai IDE. Seperti yang saya katakan, saya berasal dari latar belakang IDE yang kuat dan peningkatan produktivitas saya adalah kebalikan dari Anda.
Konrad Rudolph

48
Apa dukungan refactoring yang ditawarkan Vim? Dalam Eclipse (yang berjalan di Linux), saya dapat mengubah nama metode Java apa pun yang saya inginkan, bahkan jika itu dipanggil di 300 tempat. Bisakah Anda melakukannya dengan mudah di Vim?
quant_dev

25
quant_dev: refactoring membutuhkan penguraian kode sumber dalam beberapa cara. Sejauh yang saya tahu, tidak ada modul VIM yang melakukannya sehingga jawaban untuk pertanyaan Anda adalah "tidak ada." Itulah salah satu alasan untuk memilih IDE untuk bahasa yang berpusat pada IDE seperti Java. Karena dukungan refactoring (dll) untuk C ++ sangat minim (bahkan dalam IDE), ini tidak berlaku untuk C ++.
Konrad Rudolph

11
@ Hasen: oh tapi sebagian besar bisa . Pengubahan nama yang diketahui lingkup, misalnya. Dan percayalah, ini besar . Dan Ecplise (mis.) Dapat menghemat banyak pekerjaan di sini.
Konrad Rudolph

86

Favorit pribadi saya adalah CodeLite 2.x IDE.

lihat: http://www.codelite.org

Keputusan untuk menggunakan CodeLite didasarkan pada penelitian tentang C ++ IDE untuk Linux berikut:

  • Eclipse Galileo dengan Plugin CDT
  • NetBeans 6.7 (yang juga merupakan basis untuk SunStudio IDE)
  • KDevelop4
  • CodeBlocks 8.02
  • CodeLite 2.x

Setelah semua saya telah memutuskan untuk menggunakan CodeLite 2.x .

Di bawah ini saya telah mendaftarkan beberapa Pro dan Kontra mengenai C ++ IDE yang disebutkan. Harap dicatat, bahwa ini hanya mencerminkan pendapat pribadi saya!

EDIT : Sayang sekali SOF tidak mendukung tabel, jadi saya harus menulis dalam paragraf ...

Eclipse Galileo dengan Plugin CDT

Pro:

  • masuk akal cepat
  • juga mendukung Java, Perl (dengan plugin EPIC)
  • biasa digunakan dan dirawat dengan baik
  • juga tersedia untuk rasa OS lainnya (Windows, MacOS, Solaris, AIX (?))

Cons:

  • GUI sangat membingungkan dan agak tidak konsisten - sama sekali tidak intuitif
  • beban berat
  • Hanya mendukung CVS (AFAIK)

NetBeans 6.7 (perhatikan ini juga merupakan basis untuk SunStudio IDE)

Pro:

  • salah satu GUI paling intuitif yang pernah saya lihat
  • juga mendukung Java, Python, Ruby
  • mengintegrasikan CVS, SVN, Mercurial
  • biasa digunakan dan dirawat dengan baik
  • juga tersedia untuk rasa OS lainnya (Windows, MacOS, Solaris)

Cons:

  • sangat lambat
  • beban berat
  • menggunakan Spaces untuk indentasi, yang bukan kebijakan di tempat kerja saya. Saya yakin ini dapat dikonfigurasi, tetapi saya tidak dapat menemukan caranya

KDevelop4 (catatan: Saya tidak banyak mengujinya)

Pro:

  • biasa digunakan di Linux
  • mengintegrasikan CVS, SVN, Mercurial

Cons:

  • GUI terlihat agak kuno
  • beban berat
  • sangat spesifik untuk lingkungan KDE

CodeBlocks 8.02 (catatan: Saya tidak banyak menguji di atasnya)

Pro:

  • masuk akal cepat

Cons:

  • GUI terlihat agak kuno (meskipun memiliki layar pembuka yang bagus)
  • font pada editor sangat kecil
  • beberapa ikon (mis. ikon terkait debugger memulai / melangkah) sangat kecil
  • tidak ada integrasi kontrol sumber

CodeLite 2.x (catatan: ini adalah favorit pribadi saya)

Pro:

  • GUI terbaik, modern dan intuitif yang pernah saya lihat di Linux
  • ringan
  • masuk akal cepat
  • mengintegrasikan SVN
  • juga tersedia pada rasa OS lainnya (Windows, MacOS, Solaris (?))

Cons:

  • tidak ada integrasi CVS (itu penting bagi saya karena saya harus menggunakannya di tempat kerja)
  • tidak ada dukungan untuk Java, Perl, Python (akan menyenangkan untuk dimiliki)

14
Eclispe memiliki dukungan untuk Hg, Git, SVN, dan lainnya melalui plugin. Dan layar startup / splash menyedot bola besar. Mereka menyedot sumber daya dan menawarkan sangat sedikit manfaat. Dan mereka biasanya muncul di depan apa pun yang saya kerjakan sambil menunggu aplikasi memuat. PortableApps dan Eclipse harus menyingkirkannya.
Chris K

4
Codelite mendapat pintasan keyboard yang sama dengan Visual Studio untuk debugging, membuatnya sangat user-friendly untuk pecandu Visual.
Raoul Supercopter

Mungkin mengalahkan kuda tua di sini, tetapi GUI gerhana IMO benar-benar tak tertandingi. Ya, pada awalnya sulit untuk belajar, tetapi itu seperti Vi di mana produktivitas mulai meroket setelah Anda menaiki kurva belajar yang curam. Untuk membuktikan suatu hal, coba tekan Ctrl + 3 - salah satu fitur yang sangat mengagumkan di gerhana IMO.
kizzx2

"Kekurangan: menggunakan Spaces untuk indentasi [...] Saya yakin ini dapat dikonfigurasi, tapi saya tidak bisa mengetahui caranya." Itu menunjukkan, Anda belum benar-benar terbiasa dengan alat, jika tidak, Anda akhirnya akan menemukan opsi.
Johan Boulé

5
CodeLite luar biasa, seperti mengunyah permen karet dentyne. Ini akan meninggalkan rasa segar dan segar di mulut Anda. Eclipse, sementara menjadi fitur, juga memberi Anda muntah setelah rasa ketika Anda menggunakannya. Saya tahu ini kedengarannya kekanak-kanakan untuk dikatakan, tetapi ini benar-benar metafora terbaik untuk menjelaskan "perasaan" menggunakannya. Saya yakin orang lain akan setuju dengan saya.
Didier A.

75
  1. Kode :: Blok
  2. Eclipse CDT

Segera Anda akan menemukan bahwa IDE tidak cukup, dan Anda harus tetap belajar GCC toolchain (yang tidak sulit, setidaknya mempelajari fungsionalitas dasar). Tapi tidak ada salahnya mengurangi rasa sakit transisi dengan IDE, IMO.


+1 untuk kode kunci dan ya, Anda pasti ingin belajar setidaknya cara mengkompilasi dan menjalankan program Anda dari shell, karena kode :: blok memiliki beberapa cela.
Earlz

Eclipse sama sekali tidak IMHO ringan, Kode :: Blok ... hanya
rubenvb

7
-1 untuk blok kode. -1 untuk gerhana. Mereka berdua mengubah UI mereka selama debugging. Sampai-sampai pengguna pemula biasanya merasa tersesat. Keduanya tidak dapat men-debug garpu. Mereka berdua memiliki masalah buruk dengan integrasi SVN / CVS. (Gerhana terbaru bersama-sama dengan Subclipse rusak di Gnome pada 4/28/11 dan crash setiap 10 menit). Menyiapkan kontrol sumber adalah mimpi buruk dan integrasi dengan IDE ini sama sulitnya.
bleepzter

4
@bleepzter -1 untuk menggunakan SVN / CVS untuk memulai dengan;)
OneOfOne

1
Mercurial, Git dan Bazaar yang jauh lebih unggul dalam segala hal.
OneOfOne

66

Sebuah jawaban cepat, hanya untuk menambahkan sedikit lebih banyak pengetahuan ke topik ini:
Anda pasti harus memeriksa NetBeans . Netbeans 6.7 memiliki fitur berikut:

  • C / C ++ Proyek dan Templat: Mendukung penyorotan sintaksis, penyelesaian kode otomatis, lekukan otomatis.
  • Ini memiliki C / C ++ Debugger
  • Mendukung Konfigurasi Kompiler, Manajer Konfigurasi, dan Dukungan Makefile (dengan Wizard).
  • Ini memiliki Jendela Kelas, Jendela Penggunaan dan Jendela Navigasi File (atau panel).
  • Tampilan ekspansi makro , dan juga tooltips .
  • Dukungan untuk pengembangan QT .

Saya pikir ini adalah substitusi Visual Studio yang sempurna (dan jauh lebih baik), dan alat yang sangat bagus untuk belajar C / C ++.

Semoga berhasil!


2
Ini juga sangat bagus untuk c ++. Ini memiliki parser bahasa terbaik yang pernah ada.
Johan Boulé

1
Saya menikmati Netbeans lebih dari Eclipse untuk pengembangan c ++.
Thomas Langston

9
NetBeans jauh lebih menyenangkan daripada Eclipse, saya benar-benar berharap lebih banyak orang mulai menyadarinya.
Didier A.

1
Setelah berkelahi dengan Eclipse selama berminggu-minggu saya menemukan ini, beralih ke NetBeans dan Terima kasih! Memiliki antarmuka yang lebih bagus, lebih responsif, tidak intuitif, dan dapat disesuaikan. Beats Eclipse turun
Frederik

1
Pilihan lain di sini untuk NetBeans jauh lebih baik daripada Eclipse. Ini juga sejauh ini emulasi Vim terbaik (sebagai plugin) yang pernah saya gunakan.
thoughton

52

Setidaknya untuk proyek spesifik Qt, the Pencipta Qt (dari Nokia / Trolltech / Digia) menunjukkan harapan besar.


10
Saya menggunakannya untuk proyek non-Qt juga.
Peluang

Itu bagus. Saya mencobanya dan sangat menyukainya.
Tyler Long

32

bisakah Anda menjelaskan sedikit lebih banyak bagaimana itu untuk Anda, apa yang harus Anda ubah. Mungkin Anda bisa mengarahkan saya ke arah yang benar dengan memberikan beberapa tautan ke informasi yang Anda gunakan.

Sumber pertama saya sebenarnya adalah manhalaman alat . Ketik saja

$ man toolname

pada baris perintah (di $sini adalah bagian dari prompt, bukan input).

Tergantung pada platform, mereka ditulis dengan sangat baik dan juga dapat ditemukan di internet. Dalam hal make, saya benar-benar membaca dokumentasi lengkap yang membutuhkan waktu beberapa jam. Sebenarnya, saya rasa ini tidak perlu atau tidak membantu dalam banyak kasus, tetapi saya memiliki beberapa persyaratan khusus dalam tugas pertama saya di Linux yang membutuhkan makefile yang canggih. Setelah menulis makefile, saya memberikannya kepada seorang kolega berpengalaman yang melakukan beberapa perbaikan kecil dan koreksi. Setelah itu, saya cukup tahu make.

Saya menggunakan GVIM karena saya punya beberapa (tapi tidak banyak) pengalaman sebelumnya di sana, saya tidak bisa mengatakan apa-apa tentang Emacs atau alternatif. Saya merasa sangat terbantu untuk membaca .gvimrcfile konfigurasi orang lain . Banyak orang meletakkannya di web. Ini milik saya .

Jangan mencoba untuk menguasai semua binutil sekaligus, karena terlalu banyak fungsi. Tetapi dapatkan gambaran umum sehingga Anda akan tahu ke mana harus mencari ketika membutuhkan sesuatu di masa depan. Namun, Anda harus mengetahui semua parameter penting untuk g++dan ld(alat penghubung GCC yang dipanggil secara otomatis kecuali bila secara eksplisit dicegah).

Saya juga ingin tahu, apakah Anda memiliki kode pelengkap dan penyorotan ketika Anda membuat kode?

Penyorotan sintaks: ya, dan yang jauh lebih baik daripada Visual Studio. Kode selesai: ya- ish . Pertama, saya harus mengakui bahwa saya tidak menggunakan penyelesaian kode C ++ bahkan dalam Visual Studio karena (dibandingkan dengan VB dan C #) itu tidak cukup baik. Saya tidak sering menggunakannya sekarang, namun demikian, GVIM memiliki dukungan penyelesaian kode asli untuk C ++. Digabungkan dengan pustaka ctags dan taglist plug-in seperti ini hampir merupakan IDE.

Sebenarnya, yang membuat saya memulai adalah artikel oleh Armin Ronacher. Sebelum membaca teks, lihat screenshot di akhir itu!

Anda harus mengkompilasi terlebih dahulu sebelum mendapatkan kesalahan (sintaks)?

Iya. Tapi ini sama untuk Visual Studio, bukan (saya belum pernah menggunakan Whole Tomato)? Tentu saja, penyorotan sintaks akan menunjukkan kepada Anda tanda kurung yang tidak cocok tetapi hanya itu saja.

dan bagaimana Anda men-debug (lagi pikir breakpoints dll)?

Saya menggunakan gdbyang merupakan alat baris perintah. Ada juga antarmuka grafis yang disebut DDD.gdbadalah alat debugging modern dan dapat melakukan semua yang dapat Anda lakukan dalam IDE. Satu-satunya hal yang benar-benar mengganggu saya adalah membaca jejak tumpukan karena garis tidak diindentasi atau diformat sehingga sangat sulit untuk memindai informasi ketika Anda menggunakan banyak template (yang saya lakukan). Tapi itu juga mengacaukan tumpukan stack di IDE.

Seperti yang saya katakan, saya memiliki 'kesenangan' untuk mengatur langkah pertama saya dalam bahasa pemrograman Java menggunakan windows notepad dan kompiler java baris perintah di sekolah menengah, dan itu, .. selamat mimpi! tentu ketika saya bisa membandingkannya dengan program pemrograman lain yang saya miliki saat itu kami memiliki IDE yang layak

Anda bahkan tidak boleh mencoba membandingkan editor modern dengan fitur lengkap seperti Emacs atau GVIM dengan Notepad. Notepad adalah TextBoxkontrol yang diperindah , dan ini benar-benar membuat perbedaan. Selain itu, bekerja pada baris perintah adalah pengalaman yang sangat berbeda di Linux dan Windows. Windows cmd.exelumpuh parah. PowerShell jauh lebih baik.

/ EDIT: Saya harus menyebutkan secara eksplisit bahwa GVIM telah mengedit tab (seperti pada tab browsing, bukan tab-vs-spasi)! Butuh waktu lama bagi saya untuk menemukan mereka meskipun mereka tidak disembunyikan sama sekali. Cukup ketikkan :tabealih-alih polos :esaat membuka file atau membuat yang baru, dan GVIM akan membuat tab baru. Beralih antar tab dapat dilakukan menggunakan kursor atau beberapa pintasan berbeda (tergantung platform). Kunci gt(ketik g, lalu tdalam mode perintah) harus berfungsi di mana saja, dan melompat ke tab berikutnya, atau tab no. n jika nomor diberikan. Ketik :help gtuntuk mendapatkan bantuan lebih lanjut.


@ confuzatron: Tidak, saya menggunakan gdb karena beberapa alasan. Yang paling penting, saya biasanya bekerja tanpa X server berjalan. Juga, saya agak tidak nyaman tentang fakta bahwa DDD belum melihat pembaruan dalam waktu yang cukup lama. Di sisi lain, kepemilikan proyek baru saja berubah dan tampaknya ada perubahan yang sedang terjadi.
Konrad Rudolph

Terima kasih untuk info tab wrt gvim, tidak pernah baru itu :)
Letholdrus

VS2010 menyoroti kesalahan sintaksis tanpa kompilasi.
Candy Chiu

@Candy benar, VS2010 mengubah banyak hal dalam hal ini dan menambahkan fitur-fitur canggih untuk kompilasi latar belakang. Tetapi gvim juga telah menambahkan banyak fitur melalui plugin sementara itu. Secara khusus, Anda mungkin bisa mendapatkan penyorotan kesalahan sintaksis tanpa kompilasi melalui clang_completeplugin sekarang. Jawaban ini dari 2009 dan beberapa bagian sudah usang. Tapi ada perbaikan di semua sisi sehingga kurang lebih sama.
Konrad Rudolph

25

Bukan untuk mengulangi jawaban, tapi saya pikir saya bisa menambahkan sedikit lebih banyak.

Slickedit adalah IDE yang luar biasa.

Ini mendukung basis kode besar dengan baik tanpa memperlambat atau menghabiskan semua waktu pengindeksan. (Ini adalah masalah yang saya miliki dengan eclipse's cdt). Kecepatan Slickedit mungkin adalah hal terbaik tentang itu, sebenarnya.
Penyelesaian kode berfungsi dengan baik dan ada sejumlah besar opsi untuk hal-hal seperti pemformatan otomatis, kecantikan dan refactoring.
Itu memang memiliki debugging terintegrasi.
Ini memiliki dukungan plug-in dan komunitas yang cukup aktif membuat mereka.
Secara teori, Anda harus dapat berintegrasi dengan baik dengan orang-orang yang melakukan hal-hal makefile tradisional, karena memungkinkan Anda untuk membuat proyek langsung dari satu, tetapi itu tidak bekerja semulus yang saya inginkan ketika saya mencobanya.
Selain Linux, ada versi Mac dan Windows, jika Anda membutuhkannya.


23

Sebagai seorang pria lama UNIX, saya selalu menggunakan Emacs. Tapi itu memiliki kurva belajar yang cukup curam dan panjang, jadi saya tidak yakin saya bisa merekomendasikannya kepada pendatang baru.

Sebenarnya tidak ada IDE "baik" untuk Linux. Eclipse tidak terlalu baik untuk C / C ++ (CDT membaik, tetapi belum terlalu berguna). Yang lain kehilangan semua fitur yang akan Anda cari.

Sangat penting untuk mempelajari bagaimana semua alat individu (gcc, make, gdb, dll.) Bekerja. Setelah Anda melakukannya, Anda mungkin menemukan cara Visual Studio melakukan hal-hal menjadi sangat terbatas.


Eclipse CDT "belum terlalu berguna?" Elaborasi akan sangat membantu. Saya merasa sangat berguna (dan mudah digunakan).
John Zwinck

"belum terlalu berguna": autocomplete sering tidak berfungsi, menavigasi ke deklarasi atau penggunaan fungsi tidak berfungsi, penyorotan sintaksis tidak selalu berfungsi, refactoring tidak berfungsi, dll. Ini sedikit lebih baik daripada menggunakan vi. Frontend GDB UI adalah satu-satunya hal yang membuatnya layak digunakan sama sekali, IMHO.
Kristopher Johnson

Saya belum benar-benar mencoba refactoring dengan CDT, tetapi hal-hal lain sepertinya berhasil. Saya akan mencatat bahwa saya menjalankan Eclipse dengan beberapa parameter konfigurasi penggunaan memori maks yang cukup besar (saya memiliki 8-12 GB RAM), tetapi tampaknya baik-baik saja.
John Zwinck

Terakhir kali saya mencoba Eclipse CDT, parser sintaks / semantik untuk pelengkapan otomatis membuat seluruh IDE membeku selama 8 detik setiap kali dipanggil. Itu membuat seluruh fitur tidak berguna. Saya tidak percaya benda itu tidak berjalan di utasnya sendiri. Ini dua tahun lalu, jadi semoga saja diperbaiki sekarang. (kanan?)

Saya menemukan CDT luar biasa untuk terjun ke QT dan Boost. Pada windows dengan Mingw memiliki masalah, tetapi dalam lingkungan Posix yang tepat, auto-complete berfungsi dengan baik! Navigasi ke deklarasi sebenarnya adalah lubang yang mencolok. Tetapi mengingat bahwa C ++ dapat memiliki beberapa deklarasi identik, saya tidak terkejut. Ini adalah masalah yang lebih sulit untuk dipecahkan daripada di Jawa.
Chris K

18

Checkout Netbeans, ditulis dalam Java sehingga Anda akan memiliki lingkungan yang sama terlepas dari OS Anda, dan mendukung lebih dari sekadar C ++.

Saya tidak akan mencoba meyakinkan Anda, karena saya pikir IDE bisa menjadi pilihan yang sangat pribadi. Bagi saya itu meningkatkan produktivitas saya dengan menjadi cepat, mendukung bahasa saya kode dan memiliki fitur standar yang Anda harapkan dari IDE.


5
Saya hanya dapat menambahkan +1 saya ke ini. netbeans memiliki parser bahasa c ++ terbaik yang pernah saya lihat dalam sebuah ide; mengalahkan cdt eclipse.
Johan Boulé

18

Hanya tindak lanjut cepat untuk pertanyaan ini ...

Sudah sebulan sejak saya mulai menggunakan Vim sebagai alat 'GUI' utama saya untuk pemrograman C ++ di Linux. Pada awalnya kurva belajar memang agak curam tetapi setelah beberapa saat dan dengan opsi yang tepat diaktifkan dan skrip berjalan saya benar-benar memahami itu!

Saya suka cara Anda bisa membentuk Vim sesuai kebutuhan Anda; cukup tambahkan / ubah pemetaan kunci dan Vim diubah menjadi 'IDE' yang sangat produktif.

Toolchain untuk membangun dan mengkompilasi program C ++ di Linux juga sangat intuitif. membuat dan g ++ adalah yang alat yang akan Anda gunakan.

Namun debugger ddd tidak begitu bagus, tapi mungkin itu karena saya belum punya waktu untuk menguasainya dengan benar.

Jadi bagi siapa saja yang sedang, atau sedang mencari IDE C ++ yang bagus di Linux, seperti saya sebelumnya, taruhan terbaik Anda terletak pada alat standar yang tersedia di Linux itu sendiri (Vim, g ++, ddd) dan Anda harus benar-benar setidaknya mencoba menggunakan mereka, sebelum mencari yang lain ...

Last but not least, saya benar-benar ingin berterima kasih kepada Konrad atas jawabannya di sini, Ini benar-benar membantu saya menemukan jalan saya di lingkungan pengembangan Linux, terima kasih!

Saya juga tidak menutup pertanyaan ini, jadi orang masih bisa bereaksi atau mungkin bahkan menambahkan saran atau tambahan pada jawaban yang sudah sangat bagus ...


Bisakah Anda mendapatkan fitur IntelliSense-ish agar berfungsi di Vim + ctags? Tidak benar-benar hanya pelengkap otomatis, tetapi informasi konteks-sensitif seperti daftar parameter untuk fungsi, dll?
kizzx2

@ kizzx2: Ya , ada yang banyak pilihan .
Fred Nurk


12

Jawaban singkatnya adalah: memilih "editor" apa pun yang Anda suka, lalu gunakan konsol GDB atau ujung depan GDB sederhana untuk men-debug aplikasi Anda. Debuggers datang dengan IDE mewah seperti Netbeans sucks for C / C ++. Saya menggunakan Netbeans sebagai editor saya, dan Insight dan GDB console sebagai debugger saya.

Dengan wawasan, Anda memiliki GUI yang bagus dan kekuatan mentah GDB.

Segera setelah Anda terbiasa dengan perintah GDB, Anda akan mulai menyukainya karena Anda dapat melakukan hal-hal yang Anda tidak akan pernah bisa menggunakan GUI. Anda bahkan dapat menggunakan Python sebagai bahasa skrip jika Anda menggunakan GDB 7 atau versi yang lebih baru.

Kebanyakan orang di sini lebih memperhatikan "Editor" dari IDE. Namun, jika Anda sedang mengembangkan proyek besar di C / C ++, Anda dapat dengan mudah menghabiskan lebih dari 70% waktu Anda untuk "debuggers". Para penawar IDE mewah setidaknya 10 tahun di belakang Visual Studio. Sebagai contoh, Netbenas memiliki antarmuka yang sangat mirip dengan Visual Studio. Tetapi debugger-nya memiliki sejumlah kelemahan dibandingkan dengan Visual Studio.

  1. Sangat lambat untuk menampilkan bahkan array dengan hanya beberapa elemen
  2. Tidak ada penyorotan untuk nilai yang diubah (Secara default, studio visual menunjukkan nilai yang berubah di jendela arloji merah)
  3. Kemampuan menunjukkan memori sangat terbatas.
  4. Anda tidak dapat mengubah kode sumber lalu terus berjalan. Jika bug membutuhkan waktu lama untuk mencapai, Anda ingin mengubah sumber dan menerapkan perubahan secara langsung dan terus menjalankan aplikasi Anda.
  5. Anda tidak dapat mengubah "pernyataan berikutnya" untuk dijalankan. Di Visual Studio, Anda dapat menggunakan "Set Pernyataan Selanjutnya" untuk mengubah cara aplikasi Anda berjalan. Meskipun fitur ini dapat merusak aplikasi Anda jika tidak digunakan dengan benar, tetapi itu akan menghemat banyak waktu. Misalnya, jika Anda menemukan keadaan aplikasi Anda tidak benar, tetapi Anda tidak tahu apa yang menyebabkan masalah, Anda mungkin ingin menjalankan kembali wilayah tertentu dari kode sumber Anda tanpa me-restart aplikasi Anda.
  6. Tidak ada dukungan bawaan untuk STL seperti vektor, daftar, deque dan peta dll.
  7. Tidak ada poin tontonan. Anda perlu memiliki fitur ini, ketika Anda harus menghentikan aplikasi Anda tepat pada titik variabel diubah. Komputer berbasis Intel memiliki titik pantau perangkat keras sehingga titik pantau tidak akan memperlambat sistem Anda. Mungkin butuh berjam-jam untuk menemukan beberapa bug yang sulit ditemukan tanpa menggunakan titik tontonan. "Visual Studio" menyebut "penunjuk tontonan" sebagai "Data BreakPoint".

Daftarnya bisa jauh lebih lama.

Saya sangat frustrasi dengan kelemahan Netbeans atau IDE serupa lainnya, sehingga saya mulai belajar GDB sendiri. Saya menemukan GDB itu sendiri sangat kuat. GDB tidak memiliki semua "kerugian" yang disebutkan di atas. Sebenarnya, GDB sangat kuat, bahkan lebih baik daripada Visual Studio dalam banyak hal. Di sini saya hanya menunjukkan contoh yang sangat sederhana.

Misalnya, Anda memiliki array seperti:

struct IdAndValue
{
  int ID;
  int value;
};


IdAndValue IdAndValues[1000];

Saat aplikasi Anda berhenti, dan Anda ingin memeriksa data di IdAndValues. Misalnya, jika Anda ingin menemukan tata cara dan nilai dalam array untuk "ID" tertentu, Anda dapat membuat skrip seperti berikut:

define PrintVal 
set $i=0
printf "ID = %d\n", $arg0
while $i<1000
  if IdAndValues[$i].ID == $arg0
    printf "ordinal = %d, value = %d\n", $i, IdAndValues[$i].vaue
    set $i++
  end
end
end

Anda dapat menggunakan semua variabel dalam aplikasi Anda dalam konteks saat ini, variabel Anda sendiri (dalam contoh kami, itu adalah $ i), argumen yang diteruskan (dalam contoh kami, itu adalah $ arg0) dan semua perintah GDB (bawaan atau yang ditentukan pengguna ).

Gunakan PrintVal 1 dari GDB prompt untuk mencetak nilai untuk ID "1"

Ngomong-ngomong, NetBeans memang datang dengan konsol GDB, tetapi dengan menggunakan konsol itu, Anda bisa membuat crash Netbeans. Dan saya percaya itu sebabnya konsol disembunyikan secara default di NetBeans


Poin yang bagus. Namun sayangnya GDB memiliki kurva belajar yang sangat curam. Saya telah menggunakannya selama bertahun-tahun sekarang dan saya masih belum pernah menggunakan macro, dan (walaupun saya tahu ini mungkin melalui macro!) Setiap kode STL yang saya lemparkan tidak dapat di-debug lebih baik daripada di IDE modern.
Konrad Rudolph

Saya menghabiskan 2 hari untuk menguasai sebagian besar perintah di GDB. Setelah Anda mengetahui kekuatan baku GBD, Anda tidak akan pernah melihat ke belakang. Ini akan menghemat banyak waktu ketika Anda memperbaiki bug yang sulit ditemukan.
Charles Zhang

11

Saya menggunakan " Geany " yang ditemukan sejauh ini, IDE yang cepat dan ringan.

Di antara fitur-fitur Geany adalah :

  • Lipat kode
  • Penghematan sesi
  • Fitur IDE dasar seperti penyorotan sintaksis, tab, lekukan otomatis dan penyelesaian kode
  • Manajemen proyek sederhana
  • Membangun sistem
  • Pemilih warna (sangat berguna selama pengembangan web)
  • Emulasi terminal tertanam
  • Panggil kiat
  • Daftar simbol
  • Penyelesaian otomatis konstruksi umum (seperti jika, yang lain, sementara, dll.)

10

Jika Anda suka Eclipse untuk Java, saya sarankan Eclipse CDT. Meskipun dukungan C / C ++ tidak sekuat Java, ia tetap menawarkan sebagian besar fitur. Ini memiliki fitur bagus bernama Managed Project yang membuat bekerja dengan proyek C / C ++ lebih mudah jika Anda tidak memiliki pengalaman dengan Makefiles. Tapi Anda masih bisa menggunakan Makefiles. Saya melakukan C dan Java coding dan saya sangat senang dengan CDT. Saya sedang mengembangkan firmware untuk perangkat tertanam di C dan aplikasi di Jawa yang berbicara dengan perangkat ini, dan sangat menyenangkan untuk menggunakan lingkungan yang sama untuk keduanya. Saya kira itu mungkin membuat saya lebih produktif.


9

Saya suka bagaimana orang benar-benar kehilangan permintaan di pertanyaan awal untuk sebuah IDE. Linux BUKAN IDE. Bukan itu yang dimaksud kata-kata itu. Saya belajar c dan c ++ menggunakan vi dan gcc dan make, dan saya tidak mengatakan mereka bukan alat yang memadai, tetapi mereka BUKAN IDE. Bahkan jika Anda menggunakan alat yang lebih rumit seperti vim atau emacs atau editor mewah apa pun yang Anda inginkan, mengetik perintah pada baris perintah bukanlah IDE.

Juga, Anda semua tahu ada sebagai bagian dari studio visual, kan? Gagasan bahwa suatu IDE "membatasi" hanya konyol jika Anda dapat menggunakan IDE untuk mempercepat beberapa hal, namun masih dapat kembali pada hal-hal baris perintah saat diperlukan.

Semua yang dikatakan, saya sarankan, karena beberapa di atas, mencoba blok Kode. Yang mendapat sorotan kode yang layak, cara yang cukup mudah untuk membuat proyek, kode itu, jalankan, dll, itu adalah inti dari IDE nyata, dan tampaknya cukup stabil. Debugging menyebalkan ... Saya belum pernah melihat debugger interaktif yang layak di setiap varian linux / unix. gdb bukan. Jika Anda terbiasa dengan debugging gaya studio visual, Anda kurang beruntung.

Ngomong-ngomong, aku akan mengepak barang-barangku, aku tahu kerumunan linux satu-satunya-lihat akan meneriakkan ini dan membuatku keluar kota dalam waktu singkat.


Anda benar juga. Ini bukan IDE seperti yang kita kenal. Namun menarik bahwa OP memberikan suara untuk jawaban itu! Memaku warna saya ke tiang: Saya penggemar makefile baris perintah.
ScrollerBlaster

Akhirnya seseorang yang memiliki otak ... Saya kira yang lain hanya kode hal-hal sepele jika mereka dapat melakukan segalanya dengan emacs / vim.
Pippo


7

Saya sangat menyukai IDE Ultimate ++ . Ini memiliki beberapa fitur yang dirancang untuk digunakan dengan perpustakaan mereka sendiri (yang, BTW, adalah toolkit yang bagus jika Anda tidak ingin membeli pada GTK + atau QT) tetapi berfungsi dengan baik dengan proyek C ++ umum. Ini memberikan penyelesaian kode yang layak, pewarnaan sintaks yang baik, debugging terintegrasi, dan semua fitur lain yang didukung sebagian besar IDE modern.


Wow! Mengenai screenshot yang benar-benar terlihat luar biasa! Saya pasti akan mencobanya. Apakah Anda tahu jika saya harus membayarnya? (Itu tidak begitu jelas di situs web Ultimate ++)

Tidak, ini gratis seperti dalam "pidato", "bir" dan "naik". Mereka bahkan cukup terbuka tentang menerima patch, dan melepaskan sangat sering, sehingga sebagai open source karena mendapat :)
dguaraglia

7

Saya sangat menyarankan codeblock . Ini tidak seberat Eclipse dan mendapat dukungan proyek Visual Studio.


6

Mungkin Proyek Peralatan Linux untuk Eclipse dapat memenuhi kebutuhan Anda?

Proyek Linux Tools bertujuan untuk menghadirkan IDE C dan C ++ berfitur lengkap untuk pengembang Linux. Kami membangun pada fitur pengeditan dan debugging sumber dari CDT dan mengintegrasikan alat pengembangan asli yang populer seperti GNU Autotools, Valgrind, OProfile, RPM, SystemTap, GCov, GProf, LTTng, dll. Proyek saat ini termasuk LTTng trace viewers and analyzers, Editor RPM .spec, integrasi autotools, alat analisis penggunaan tumpukan Valgrind, dan alat profil panggilan OProfile.


6

Di Linux ada banyak IDE:

Dalam pengalaman saya , yang paling berharga adalah Eclipse dan Qt Creator . Keduanya menyediakan semua fitur "standar" (yaitu pelengkapan otomatis, penyorotan sintaks, debugger, integrasi git). Perlu dicatat bahwa Eclipse juga menyediakan fungsionalitas refactoring, sementara Qt Creator menyediakan integrasi dengan Valgrind dan dukungan untuk penyebaran pada target jarak jauh.

Juga IDE CLion komersial tampaknya bagus (tapi saya belum menggunakannya secara luas).


5

Saya mendengar Anjuta cukup apik untuk pengguna Gnome. Saya bermain sedikit dengan KDevelop dan itu bagus, tapi agak kurang fitur. Kode :: Blok juga sangat menjanjikan, dan saya suka yang terbaik.


5

Sun Studio versi 12 adalah unduhan gratis (tersedia GRATIS dan berbayar) - http://developers.sun.com/sunstudio/downloads/thankyou.jsp?submit=%A0FREE+Download%A0%BB%A0 .

Saya yakin Anda memiliki dukungan penyelesaian kode dan debugging termasuk dukungan plugin di IDE ini.

Sun Studio tersedia untuk Linux dan juga Solaris. forum: http://developers.sun.com/sunstudio/community/forums/index.jsp . Forum Sun Studio Linux: http://forum.sun.com/forum.jspa?forumID=855

Saya akan sangat ingin mendengar tanggapan Anda tentang alat ini.

BR,
~ A


5

Saya sebelumnya menggunakan Ultimate ++ IDE dan ini agak bagus.


5

Dan kemudian saya perhatikan bahwa ini bukan bagaimana Anda bekerja di sana *, dan saya membuang semuanya, menghabiskan beberapa hari membaca manual, mengatur shell saya (bash), mengatur lingkungan GVIM, mempelajari GCC / binutils toolchain, buat dan gdb dan hidup bahagia selamanya.

Saya sebagian besar setuju, tetapi masalahnya juga salah satu persepsi: kita lupa betapa sulitnya menjadi produktif dalam setiap IDE pilihan (atau lingkungan lain). Saya menemukan IDE (Visual Studio, NetBeans, Eclipse) sangat rumit dalam banyak hal.

Sebagai seorang pria lama UNIX, saya selalu menggunakan Emacs. Tapi itu memiliki kurva belajar yang cukup curam dan panjang, jadi saya tidak yakin saya bisa merekomendasikannya kepada pendatang baru.

Saya akan kedua itu; gunakan Emacs sebagai editor utama saya di Linux dan MSW (XP2, W2K). Saya tidak setuju bahwa itu memiliki kurva belajar yang curam , tetapi akan mengatakan bahwa karena sejumlah besar fitur itu memiliki kurva belajar yang panjang . Anda dapat menjadi produktif dalam waktu singkat, tetapi jika mau, Anda dapat mempelajari fitur-fitur baru itu selama bertahun-tahun yang akan datang.

Namun - jangan berharap semua fitur Emacs tersedia di menu drop-down, ada terlalu banyak fungsi untuk menemukannya di sana.

Seperti yang saya katakan, saya telah menggunakan GNU Emacs di MSW selama bertahun-tahun. Dan itu selalu bekerja dengan baik dengan Visual Studio sampai saya "upgrade" ke 2008; sekarang kadang - kadang menunda beberapa detik sebelum menyegarkan file dari disk. Alasan utama untuk mengedit di jendela VS adalah fitur penyelesaian kode "Intellisense".



5

Meskipun saya menggunakan Vim, beberapa rekan kerja saya menggunakan SlickEdit yang terlihat cukup bagus. Saya tidak yakin tentang debugging terintegrasi karena kami tidak akan dapat melakukannya pada proyek khusus kami.

SlickEdit memang memiliki dukungan yang baik untuk menavigasi basis kode besar, dengan referensi silang dan tag jumping. Tentu saja ia memiliki hal-hal dasar seperti penyorotan sintaks dan penyelesaian kode juga.


5

Saya menggunakan Eclipse CDT dan Qt Creator (untuk aplikasi Qt).

Itu kesukaan saya. Ini adalah pertanyaan yang sangat sugestif dan ada banyak jawaban seperti halnya pengembang. :)


4

SlickEdit. Saya telah menggunakan dan menyukai SlickEdit sejak 2005, baik di Windows maupun di Linux. Saya juga memiliki pengalaman bekerja di Visual Studio (5, 6, 2003, 2005) dan hanya dengan Emacs dan baris perintah. Saya menggunakan SlickEdit dengan makefile eksternal, beberapa rekan tim saya menggunakan SlickEdit, yang lain menggunakan Emacs / vi. Saya tidak menggunakan debugger terintegrasi, kontrol versi terintegrasi, sistem build terintegrasi: Saya biasanya menemukan terlalu banyak integrasi menjadi rasa sakit yang nyata. SlickEdit kuat (sangat sedikit bug), cepat dan intuitif. Itu seperti mobil Jerman, mobil pengemudi.

Versi terbaru SlickEdit tampaknya menawarkan banyak fitur yang tidak menarik bagi saya, saya sedikit khawatir bahwa produk tersebut akan membengkak dan terdilusi di masa depan. Untuk saat ini (saya menggunakan V13.0) sangat bagus.



3

Jika Anda menggunakan vim untuk waktu yang lama, maka Anda harus menjadikannya sebagai IDE. Ada banyak tambahan yang tersedia. Saya menemukan beberapa di antaranya cukup berguna, dan disusun di sini, lihatlah.

Dan masih banyak lagi dalam seri tips & trik vi / vim di sana.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.