Linux için C ++ IDE? [kapalı]


209

Programlama ufuklarımı Linux'a genişletmek istiyorum. İyi, güvenilir bir temel araç seti önemlidir ve IDE'den daha temel olan nedir?

Bu SO konularını bulabilirim:

Hafif bir IDE aramıyorum . Bir IDE para değerinde ise, o zaman ben ödeyeceğim, bu yüzden ücretsiz olması gerekmez.

Sorum o zaman:

Ne iyi, Linux için C ++ programlama IDE kullanılabilir?

Minimumlar oldukça standarttır: sözdizimi vurgulama, kod tamamlama ( intellisense veya Eclipse karşılığı gibi) ve tümleşik hata ayıklama (örn. Temel kesme noktaları).

Bunu kendim aradım, ama o kadar çok şey var ki, özellikle benim gibi Linux'ta çok az C ++ kodlama deneyimi olan biri için, iyiliği elden kötülerden ayırmak neredeyse imkansız. Bunu biliyorum Eclipse C ++ destekler gerçekten Java için bu IDE gibi, ve ben, ama C için herhangi iyidir ++ ve orada bir şey daha iyidir?

İkinci gönderinin aslında bazı iyi önerileri var, ama eksik olduğum şey, şekerli IDE'yi kullanıcı için bu kadar iyi yapan şey nedir, (dis) avantajları nelerdir?

Belki de sorum şu olmalıdır:

Hangi IDE'yi öneriyorsunuz (deneyimleriniz göz önüne alındığında) ve neden?


1
Bu bence bir veya iki gün içinde dördüncü "Linux'ta hangi IDE'yi kullanmalıyım" sorusudur.
Ben Collins

Belki de bu sorunun sorulduğu tarihe bakmalısın ... ya da daha yeni soruları buraya göstermelisin
sven

Son sürümde Eclipse, eclipse.org/linuxtools'u yayın trenine entegre etti - bu proje, Eclipse'yi Linux'a özgü araçları entegre ederek Linux'ta daha tam teşekküllü bir C / C ++ IDE yapmayı hedefliyor.
Jean Hominal

Yanıtlar:


259

Başlangıçta: karışıklık

Bu cevabı ilk olarak yazarken, yakın zamanda Visual Studio'dan (yılların tecrübesiyle) Linux'a geçtim ve yaptığım ilk şey makul bir IDE bulmaya çalışmaktı. O zaman bu imkansızdı: iyi bir IDE yoktu.

İsa'nın Doğuşu: UNIX bir IDE'dir. Hepsini. 1

Ve sonra Linux'ta IDE'nin araçları ile komut satırı olduğunu fark ettim:

  • Önce kabuğunuzu kurdunuz
  • ve editörünüz; zehirini seç - her ikisi de son teknoloji:

İhtiyaçlarınıza bağlı olarak, editörün güzel çalışmasını sağlamak için birkaç eklenti kurmanız ve yapılandırmanız gerekecektir (bu can sıkıcı kısımdır). Örneğin, Vim'deki çoğu programcı akıllı otomatik tamamlama için YouCompleteMe eklentisinden yararlanır .

Bu işlem tamamlandıktan sonra kabuk, çeşitli araçlarla (Debuggers (gdb), Profilers (gprof, valgrind) vb.) Etkileşimde bulunmak için komut arayüzünüzdür. Make , CMake , SnakeMake veya çeşitli alternatifler. Kodunuzu bir sürüm kontrol sistemi ile yönetirsiniz (çoğu kişi Git'i kullanır ). Ayrıca multipleks (= birden çok pencere / sekme / panel düşünün) ve terminal oturum devam etmek için tmux (önceden de ekran) kullanın.

Mesele şu ki, kabuk ve birkaç araç yazma kuralları sayesinde, bunların hepsi birbiriyle bütünleşiyor . Ve bu şekilde Linux kabuğu , tamamen diğer modern IDE'lerle eşit olan, tamamen entegre bir geliştirme ortamıdır . (Bu, bireysel IDE'lerin komut satırında bulunmayan özelliklere sahip olmadığı anlamına gelmez, ancak tersi de doğrudur.)

Her birine kendi

Alışkanlık haline geldiğinizde yukarıdaki iş akışının ne kadar iyi çalıştığını abartmam. Ancak bazı insanlar sadece grafik editörleri tercih ediyorlar ve bu cevabın orijinal olarak yazıldığı yıllarda, Linux birkaç farklı programlama dili için mükemmel bir grafik IDE paketi kazandı (ancak bildiğim kadarıyla C ++ için değil). Benim gibi - onları kullanmasanız bile onlara bir şans verin. İşte küçük ve önyargılı bir seçim:

Bu listenin tam olmaktan uzak olduğunu unutmayın.


1 Bu başlığı dsm'nin yorumundan çaldım.

2 Eskiden Vim'den bahsediyordum. Sade Vim hala daha yetenekli olsa da, Neovim umut verici bir yeniden başlatma ve birkaç eski siğil modernize edildi.


223
kesinlikle katılmıyorum. ne üzerinde çalıştığınız önemli değil. verimliliği önemli ölçüde artırır. Ben kod blokları kullanın ve VI geri dönmek neredeyse imkansız olduğunu bulmak. Mac, Win ve Linux'ta kodladım ve görsel stüdyoyu en iyi IDE olarak bulsam da, kod blokları yaklaşıyor.
DavidG

35
David, belki de bir IDE'nin sunduğu araç zincirinden tam olarak ne eksik olduğunu ayrıntılarıyla (kendi cevabını…) anlayabilirsin. Söylediğim gibi, güçlü bir IDE geçmişinden geldim ve üretkenlik artışım sizin tam tersinizdi.
Konrad Rudolph

48
Vim hangi yeniden düzenleme desteğini sunuyor? Eclipse'de (Linux altında çalışır), 300 yerde çağrılsa bile istediğim herhangi bir Java yönteminin adını değiştirebilirim. Vim'de kolayca yapabilir misin?
quant_dev

25
quant_dev: refactoring, kaynak kodunun bir şekilde ayrıştırılmasını gerektirir. Bildiğim kadarıyla, hiçbir VIM modülü bunu yapmaz, bu nedenle sorunuzun cevabı “yok” dur. Java gibi IDE merkezli diller için bir IDE'yi tercih etmenin nedenlerinden biri de budur. C ++ için yeniden düzenleme desteği (vb.) Zaten çok az olduğundan (IDE'lerde bile), bu C ++ için geçerli değildir.
Konrad Rudolph

11
@ hasen: oh ama büyük bölümleri olabilir . Örneğin, kapsama duyarlı yeniden adlandırma. Ve inan bana, bu büyük . Ecplise (örneğin) burada çok fazla iş tasarrufu sağlayabilir .
Konrad Rudolph

86

Kişisel favorim CodeLite 2.x IDE.

bkz. http://www.codelite.org

CodeLite kullanma kararı, Linux için aşağıdaki C ++ IDE ile ilgili bir araştırmaya dayanıyordu:

  • CDT Eklentisi ile Eclipse Galileo
  • NetBeans 6.7 (aynı zamanda SunStudio IDE'nin de temelidir)
  • KDevelop4
  • CodeBlocks 8.02
  • CodeLite 2.x

Ne de olsa CodeLite 2.x kullanmaya karar verdim .

Aşağıda bahsedilen C ++ IDE'leri ile ilgili bazı Artıları ve Eksileri listeledim. Bunun yalnızca kişisel görüşümü yansıttığını lütfen unutmayın!

EDIT : SOF tabloları desteklemediği ne yazık, bu yüzden paragraflarda yazmak zorunda ...

CDT Eklentisi ile Eclipse Galileo

Artıları:

  • makul hızlı
  • ayrıca Java, Perl (EPIC eklentisi ile)
  • yaygın olarak kullanılan ve bakımlı
  • diğer işletim sistemi lezzetleri için de kullanılabilir (Windows, MacOS, Solaris, AIX (?))

Eksileri:

  • GUI çok kafa karıştırıcı ve biraz tutarsız - hiç de sezgisel değil
  • ağır ağırlık
  • Yalnızca CVS'yi (AFAIK) destekler

NetBeans 6.7 (bunun aynı zamanda SunStudio IDE için de temel olduğunu unutmayın)

Artıları:

  • şimdiye kadar gördüğüm en sezgisel GUI
  • Java, Python, Ruby'yi de destekler
  • CVS, SVN, Mercurial'ı entegre eder
  • yaygın olarak kullanılan ve bakımlı
  • diğer işletim sistemi lezzetleri için de kullanılabilir (Windows, MacOS, Solaris)

Eksileri:

  • aşırı yavaş
  • ağır ağırlık
  • Girintiler için Boşluklar kullanır, bu benim işimdeki politika değildir. Eminim bu yapılandırılabilir, ancak bunun nasıl yapılacağını bulamadım

KDevelop4 (not: Üzerinde fazla test yapmadım)

Artıları:

  • Linux'ta yaygın olarak kullanılır
  • CVS, SVN, Mercurial'ı entegre eder

Eksileri:

  • GUI biraz eski moda görünüyor
  • ağır ağırlık
  • KDE ortamına çok özel

CodeBlocks 8.02 (not: Çok fazla test yapmadım)

Artıları:

  • makul hızlı

Eksileri:

  • GUI biraz eski moda görünüyor (güzel bir başlangıç ​​ekranı olmasına rağmen)
  • editördeki yazı tipleri çok küçük
  • bazı simgeler (örn. hata ayıklayıcı ile ilgili simgeler başlangıç ​​/ adım) çok küçük
  • kaynak kontrolü entegrasyonu yok

CodeLite 2.x (not: bu benim kişisel favorim)

Artıları:

  • Linux'ta gördüğüm en iyi, modern görünümlü ve sezgisel GUI
  • hafif
  • makul hızlı
  • SVN'yi entegre eder
  • diğer işletim sistemi lezzetlerinde de bulunur (Windows, MacOS, Solaris (?))

Eksileri:

  • CVS entegrasyonu yok (bu benim için önemli çünkü işte kullanmak zorundayım)
  • Java, Perl, Python için destek yok (güzel olurdu)

14
Eclispe, eklentiler aracılığıyla Hg, Git, SVN ve diğerlerini destekler. Ve başlangıç ​​/ açılış ekranları büyük topları emer. Kaynakları emerler ve çok az fayda sağlarlar. Ve genellikle uygulamanın yüklenmesini beklerken üzerinde çalıştığım her şeyin önünde açılırlar. PortableApps ve Eclipse bunlardan kurtulmalıdır.
Chris K

4
Codelite, hata ayıklama için Visual Studio ile aynı klavye kısayoluna sahipti ve Visual addicts için çok kullanıcı dostu hale getirdi.
Raoul Supercopter

Burada eski bir atı dövüyor olabilir, ama IMO tutulmasının GUI'si gerçekten eşsiz. Evet, ilk başta öğrenmek zor, ama dik öğrenme eğrisine tırmandıktan sonra verimliliğin hızla artmaya başladığı Vi gibi bir şey. Bir noktayı kanıtlamak için, tutulma IMO'sunun en harika özelliklerinden biri olan Ctrl + 3 tuşlarına basmayı deneyin.
kizzx2

"Eksileri: girintiler için Spaces kullanıyor [...] Eminim bu yapılandırılabilir, ancak bunun nasıl yapılacağını bulamadım." Bu, gerçekten aracı kullanmaya alışık olmadığınızı gösterir, aksi takdirde, seçeneği sonunda bulacaksınız.
Johan Boulé

5
CodeLite inanılmaz, yirmi buz sakızı çiğnemek gibi. Ağzınızda taze ve nane bir tat bırakacaktır. Tutulma, özellikli olmakla birlikte, kullandığınızda tattan sonra size bu kusmayı verir. Bunu söylemek çocukça geliyor, ama onları kullanmanın “hissini” açıklamak için gerçekten en iyi metafor. Eminim başkaları benimle aynı fikirde olacaktır.
Didier A.

75
  1. Code :: Blocks
  2. Eclipse CDT

Yakında IDE'lerin yeterli olmadığını göreceksiniz ve yine de GCC araç zincirini öğrenmek zorunda kalacaksınız (bu zor değil, en azından temel işlevselliği öğrenmek). Ancak IDE'ler, IMO ile geçiş ağrısını azaltmada herhangi bir zarar yok.


Kod blokları ve evet için +1, kesinlikle en azından programlarınızı bir kabuktan nasıl derleyeceğinizi ve çalıştıracağınızı öğrenmek isteyeceksiniz, kod :: bloklarının bazı lekeleri var.
Mart'ta Earlz

Tutulma hiç de hafif değil IMHO, Kod :: Bloklar ... sadece
rubenvb

7
Kod blokları için -1. Tutulma için -1. Her ikisi de hata ayıklama sırasında kullanıcı arayüzlerini değiştirir. Acemi bir kullanıcının genellikle kayıp hissettiği noktaya. İkisi de çatal hata ayıklayamıyor. Her ikisinin de SVN / CVS entegrasyonu ile ilgili kötü sorunları var. (Subclipse ile birlikte en son Eclipse, 4/28/11 itibariyle Gnome'da kırılır ve her 10 dakikada bir çöker). Kaynak kontrolünün kurulması bir kabustur ve bu IDE'lerle entegrasyon da aynı derecede zordur.
bleepzter

4
@bleepzter -1 ile başlamak için SVN / CVS kullanmak için;)
OneOfOne

1
Mercurial, Git ve Bazaar her yönden çok daha üstün.
OneOfOne

66

Hızlı bir cevap, sadece bu konuya biraz daha bilgi eklemek için: NetBeans'i
mutlaka kontrol etmelisiniz . Netbeans 6.7 aşağıdaki özelliklere sahiptir:

  • C / C ++ Projeleri ve Şablonları: Sözdizimi vurgulama, otomatik kod tamamlama, otomatik girintiyi destekler.
  • C / C ++ Hata Ayıklayıcısına sahiptir
  • Derleyici Yapılandırmaları, Configuration Manager ve Makefile Desteği'ni (Sihirbazla) destekler.
  • Sınıflar Penceresi, Usages Penceresi ve Dosya Gezinme Penceresi (veya paneli) vardır.
  • Bir Makro genişletme görünümü ve ayrıca ipuçları .
  • QT geliştirme desteği .

Bence mükemmel (ve çok daha iyi) bir Visual Studio ikamesi ve C / C ++ öğrenmek için çok iyi bir araç.

İyi şanslar!


2
Ayrıca c ++ için gerçekten iyi. Şimdiye kadarki en iyi dil ayrıştırıcısı var.
Johan Boulé

1
Netbeans Eclipse c ++ geliştirme için çok daha fazla keyif aldım.
Thomas Langston

9
NetBeans Eclipse'den çok daha keyifli, gerçekten daha fazla insanın bunu fark etmeye başlamasını diliyorum.
Didier A.

1
Eclipse ile haftalarca kavga ettikten sonra bunu buldum, NetBeans'e geçtim ve teşekkürler! Daha hoş bir arayüze sahip, daha duyarlı, sezgisel ve özelleştirilebilir. Tutulmayı yener
Frederik

1
Eclipse'den ne kadar daha iyi NetBeans için başka bir oy var. Ayrıca şimdiye kadar kullandığım en iyi Vim öykünmesine (bir eklenti olarak) sahiptir.
thoughton


32

bunun sizin için nasıl olduğunu, neyi değiştirmek zorunda olduğunuzu biraz daha netleştirebilir misiniz? Belki de kullandığınız bilgilere bazı bağlantılar sağlayarak beni doğru yöne yönlendirebilirsiniz.

İlk kaynağım aslında araçların mansayfalarıydı. Sadece yaz

$ man toolname

komut satırında ( $girişin değil, istemin bir parçası).

Platforma bağlı olarak, oldukça iyi yazılmış ve internette de bulunabilirler. Durumda, birkaç saat süren belgelerinmake tamamını okudum . Aslında, bunun çoğu durumda gerekli veya yararlı olduğunu düşünmüyorum, ancak Linux altındaki ilk ödevlerimde sofistike bir dosya gerektiren birkaç özel gereksinimim vardı. Makefile'ı yazdıktan sonra, ufak tefek değişiklikler ve düzeltmeler yapan deneyimli bir meslektaşımla verdim. Ondan sonra neredeyse biliyordum .make

GVIM'i kullandım çünkü orada daha önce (çok fazla değil) deneyimim vardı, Emacs veya alternatifler hakkında hiçbir şey söyleyemem. Gerçekten diğer insanların .gvimrcyapılandırma dosyasını okumak için yardımcı olduğunu düşünüyorum . Birçok kişi web'e koydu. İşte benim .

Tüm binutillerin bir keresinde ustalaşmaya çalışmayın, çok fazla işlev var. Ancak genel bir bakış edinin, böylece gelecekte bir şeye ihtiyaç duyduğunuzda nerede arama yapacağınızı bileceksiniz. Sen gerektiğini , ancak, tüm önemli parametreleri bilmek g++ve ld(açıkça engelledi durumlar dışında otomatik çağrılan GCC bağlayıcı aracı).

Ayrıca merak ediyorum, kod yazarken kod tamamlama ve sözdizimi vurgulama var mı?

Sözdizimi vurgulama: evet ve Visual Studio'dan çok daha iyi. Kod tamamlama: evet- imsi . Birincisi, (VB ve C # ile karşılaştırıldığında) Visual Studio'da bile C ++ kod tamamlama kullanmadığımı itiraf etmeliyim ki yeterince iyi değildi. Şimdi sık sık kullanmıyorum ama yine de, GVIM C ++ için yerel kod tamamlama desteğine sahiptir . İle birlikte ctags kütüphanesi ve bir plug-in gibi taglist bu neredeyse bir IDE.

Aslında, beni başlatan şey Armin Ronacher'in bir makalesiydi . Metni okumadan önce, sonundaki ekran görüntülerine bakın!

(sözdizimi) hataları almadan önce derlemeniz gerekiyor mu?

Evet. Ama bu Visual Studio için aynı, değil mi (Asla Bütün Domates kullanmadım)? Elbette, sözdizimi vurgulaması size eşleşmeyen parantezleri gösterecektir, ancak hepsi bu kadar.

ve nasıl hata ayıklama (tekrar kesme noktaları vb düşünüyorum)?

Kullandığım gdbbir komut satırı aracı olan. Ayrıca grafiksel bir ön uç da var DDD. gdbmodern bir hata ayıklama aracıdır ve bir IDE'de yapabileceğiniz her şeyi yapabilir. Beni gerçekten sinirlendiren tek şey bir yığın izini okumaktır çünkü satırlar girintili veya biçimlendirilmemiş olduğundan, çok sayıda şablon kullandığınızda bilgileri taramak gerçekten zordur (yaptığım). Ama aynı zamanda IDE'lerde yığın izini de karıştırıyor.

Dediğim gibi, ben pencerede not defteri ve lisede komut satırı java derleyici kullanarak Java programlama dilinde ilk adımları ayarlamak için 'zevk' vardı ve bu, .. wel bir kabus! kesinlikle diğer programlama dersleri ile karşılaştırabildiğim zaman iyi IDE'lerin olduğu yerde

Emacs veya GVIM ile Notepad gibi modern, tam özellikli bir editörü karşılaştırmaya bile çalışmamalısınız. Not Defteri süslenmiş bir TextBoxkontroldür ve bu gerçekten tüm farkı yaratır. Ayrıca, komut satırı üzerinde çalışmak Linux ve Windows'da çok farklı bir deneyimdir. Windows cmd.execiddi şekilde sakat. PowerShell çok daha iyi.

/ EDIT: Açıkça belirtmek gerekir ki GVIM sekmeli düzenleme (sekmeli tarama gibi, sekmeler-boşluklar gibi)! Hiç gizli olmasalar da onları bulmam çok zaman aldı. Bir dosyayı açarken veya yeni bir dosya oluştururken :tabedüz yerine yazmanız :eyeterlidir; GVIM yeni bir sekme oluşturur. Sekmeler arasında geçiş yapmak imleç veya birkaç farklı kısayol kullanılarak yapılabilir (platforma bağlı olarak). Anahtar gt(tür g, ardından tkomut modunda) her yerde çalışmalı ve bir sonraki sekmeye veya sekme no. n bir numara verildiyse. Tip :help gtfazla yardım almak için.


@confuzatron: Hayır, çeşitli nedenlerle gdb kullanıyorum. En önemlisi, genellikle herhangi bir X sunucusu çalışmadan çalışırım. Ayrıca, DDD'nin uzun zamandır herhangi bir güncelleme görmemesi konusunda biraz rahatsızım. Öte yandan, proje mülkiyeti az önce değişti ve değişimler var gibi görünüyor.
Konrad Rudolph

Sekme bilgisi için teşekkürler wrt gvim, asla yeni değil :)
Letholdrus

VS2010, derleme olmadan sözdizimi hatalarını vurgular.
Candy Chiu

@Candy true, VS2010 bu konuda birçok şeyi değiştirdi ve arka plan derlemesi için gelişmiş özellikler ekledi. Ancak gvim de bu arada eklentiler aracılığıyla birçok özellik ekledi. Özellikle, muhtemelen clang_completeeklenti aracılığıyla derleme olmadan sözdizimi hatası vurgulama alabilirsiniz . Bu cevap 2009'dan ve bazı bölümleri modası geçmiş. Ancak her tarafta iyileştirmeler yapıldı, bu yüzden aşağı yukarı eşitlendi.
Konrad Rudolph

25

Bir cevabı tekrarlamak için değil, ama biraz daha ekleyebileceğimi düşünüyorum.

Slickedit mükemmel bir IDE'dir.

Tüm zaman indekslemesini yavaşlatmadan veya harcamadan büyük kod tabanlarını iyi destekler. (Bu tutulma cdt ile ilgili bir sorun). Slickedit'in hızı muhtemelen bu konuda en güzel şey.
Kod tamamlama iyi çalışıyor ve otomatik biçimlendirme, güzelleştirme ve yeniden düzenleme gibi şeyler için çok sayıda seçenek var.
Entegre hata ayıklama özelliği vardır.
Eklenti desteği ve onları oluşturan oldukça aktif bir topluluğa sahiptir.
Teoride, doğrudan bir projeyi oluşturmanıza izin verdiği için, geleneksel makefile işlerini yapan insanlarla iyi bir şekilde bütünleşebilmelisiniz, ancak bu, denediğimde sevdiğim kadar sorunsuz çalışmadı.
Linux'a ek olarak, ihtiyacınız olduğunda Mac ve Windows sürümleri de vardır.


23

Eski bir UNIX adamı olarak daima Emacs kullanıyorum. Ama bunun oldukça dik ve uzun bir öğrenme eğrisi var, bu yüzden yeni gelenlere önerebileceğimden emin değilim.

Gerçekten Linux için "iyi" bir IDE yoktur. Eclipse C / C ++ için çok iyi değil (CDT gelişiyor, ancak henüz çok kullanışlı değil). Diğerleri, arayacağınız tüm özellikleri kaçırıyor.

Tüm bireysel araçların (gcc, make, gdb, vb.) Nasıl çalıştığını öğrenmek gerçekten önemlidir. Bunu yaptıktan sonra, Visual Studio'nun çok kısıtlayıcı şeyler yapmanın yolunu bulabilirsiniz.


Eclipse CDT "henüz çok kullanışlı değil mi?" Detaylandırma faydalı olacaktır. Son derece kullanışlı buluyorum (ve kullanımı kolay).
John Zwinck

"henüz çok kullanışlı değil": otomatik tamamlama çoğu zaman çalışmaz, beyanlara veya işlevlerin kullanımına uyulmaz, sözdizimi vurgulama her zaman işe yaramaz, yeniden düzenleme işe yaramaz, vb vi kullanmaktan biraz daha iyidir. GDB ön uç kullanıcı arayüzü, onu kullanmaya değer kılan tek şey IMHO.
Kristopher Johnson

CDT ile yeniden düzenlemeyi gerçekten denemedim, ancak diğer şeyler işe yarıyor gibi görünüyor. Eclipse'i oldukça büyük maksimum bellek kullanımı yapılandırma parametreleriyle (8-12 GB RAM'im) çalıştırdığımı not edeceğim, ancak iyi görünüyor.
John Zwinck

Eclipse CDT'yi en son denediğimde, otomatik tamamlama için sözdizimi / semantik ayrıştırıcı, her çağrıldığında 8 saniye boyunca tüm IDE dondurmasını yaptı. Tüm özelliği işe yaramaz hale getirdi. Şey kendi iş parçacığında çalışmadı inanamıyorum. Bu iki yıl önceydi, bu yüzden şimdi düzeltildi. (değil mi?)

Ben QT ve Boost içine forays için CDT müthiş buluyorum. Mingw'li pencerelerde sorunları var, ancak uygun bir Posix ortamında otomatik tamamlama harika çalışıyor! Beyanlara gitmek aslında tek göze çarpan deliktir. Ancak C ++ 'nın birden fazla özdeş bildirimi olabileceği düşünüldüğünde, şaşırmadım. Bu, Java'dan daha zor çözülmesi gereken bir sorundur.
Chris K

18

Checkout Netbeans, Java ile yazılmıştır, böylece işletim sisteminizden bağımsız olarak aynı ortama sahip olursunuz ve sadece C ++ 'dan çok daha fazlasını destekler.

Sizi ikna etmeye çalışmayacağım, çünkü bence IDE'ler çok kişisel bir seçim olabilir. Benim için hızlı, kodladığım dilleri destekleyerek ve bir IDE'den bekleyebileceğiniz standart özelliklere sahip olarak üretkenliğimi artırır.


5
+ 1'i buna ekleyebilirim. netbeans bir ide gördüğüm en iyi c ++ dil ayrıştırıcı vardır; tutulmanın cdt'sini yener.
Johan Boulé

18

Bu soru için kısa bir takip ...

Vim'i Linux'ta C ++ programlamak için ana 'GUI' aracı olarak kullanmaya başladığımdan beri bir ay oldu. İlk başta öğrenme eğrisi gerçekten biraz dikti ama bir süre sonra ve doğru seçenekler açık ve betikler çalışırken gerçekten asıldım!

Vim'i ihtiyaçlarınıza göre nasıl şekillendirebileceğinizi seviyorum; sadece anahtar eşlemeleri ekleyin / değiştirin ve Vim son derece üretken bir 'IDE'ye dönüştü.

Linux üzerinde bir C ++ programı oluşturmak ve derlemek için kullanılan araç zinciri de gerçekten sezgiseldir. marka ve g ++ vardır Kullanacağınız araçları.

Ayıklayıcı ddd gerçekten ancak iyi değil, ama belki düzgün ana zamanım olmadı en çünkü.

Linux'ta iyi bir C ++ IDE'si olan veya arayan herkes için, tıpkı benim gibi, en iyi bahsiniz Linux'taki standart mevcut araçlarla (Vim, g ++, ddd) yatmaktadır ve gerçekten en azından kullanmaya çalışmalısınız. başka bir şey aramadan önce ...

Son olarak, buradaki cevabı için gerçekten konrad'a teşekkür etmek istiyorum , Linux geliştirme ortamında yolumu bulmama gerçekten yardımcı oldu, teşekkür ederim!

Ben de değilim değil bu soruyu kapanış, böylece insanlar hala tepki ya da belki zaten gerçekten güzel cevaplara yeni öneri veya eklemeler eklemek ...


IntelliSense-ish özelliklerinin Vim + ctags'de çalışmasını sağlayabilir misiniz? Gerçekten otomatik tamamlama değil, işlev için parametre listesi gibi bağlama duyarlı bilgiler de var mı?
kizzx2

@ kizzx2: Evet , orada olan birçok seçenek .
Fred Nurk


12

Daha kısa cevap: istediğiniz "editör" ü seçmek, ardından uygulamanızda hata ayıklamak için GDB konsolunu veya basit bir GDB ön ucunu kullanın. Hata ayıklayıcılar, Netbeans gibi süslü IDE'ler ile C / C ++ için emiyor. Editörüm olarak Netbeans, hata ayıklayıcı olarak Insight ve GDB konsolunu kullanıyorum.

İçgörü ile, güzel bir GUI ve GDB'nin ham gücüne sahipsiniz.

GDB komutlarına alıştığınız anda, onu bir GUI kullanarak asla yapamayacağınız şeyleri yapabileceğiniz için sevmeye başlayacaksınız. GDB 7 veya daha yeni bir sürümünü kullanıyorsanız Python'u kod diliniz olarak bile kullanabilirsiniz .

Buradaki çoğu insan IDE'lerin "Editörlerine" daha fazla ilgi gösterdi. Ancak, C / C ++ 'da büyük bir proje geliştiriyorsanız, zamanınızın% 70'inden fazlasını "hata ayıklayıcılara" kolayca harcayabilirsiniz. Süslü IDE'lerin hata ayıklayıcıları Visual Studio'nun en az 10 yıl gerisindedir. Örneğin, Netbenas Visual Studio ile çok benzer arayüzlere sahiptir. Ancak hata ayıklayıcının Visual Studio ile karşılaştırıldığında bir takım dezavantajları vardır.

  1. Sadece birkaç yüz öğe içeren bir diziyi bile görüntülemek çok yavaş
  2. Değişen değer için vurgu yok (Varsayılan olarak, visual studio izleme pencerelerinde değişen değerleri kırmızı renkte gösterir)
  3. Hafızayı gösterme yeteneği çok sınırlı.
  4. Kaynak kodunu değiştiremezsiniz ve çalışmaya devam edebilirsiniz. Bir hatanın vurulması uzun sürüyorsa, kaynağı değiştirmek ve değişiklikleri canlı olarak uygulamak ve uygulamanızı çalıştırmaya devam etmek istersiniz.
  5. Çalıştırmak için "sonraki ifadeyi" değiştiremezsiniz. Visual Studio'da, uygulamanızın çalışma şeklini değiştirmek için "Sonraki Deyimi Ayarla" kullanabilirsiniz. Bu özellik düzgün kullanılmazsa uygulamanızı çökmesine rağmen, size çok zaman kazandıracaktır. Örneğin, uygulamanızın durumunu doğru bulmadıysanız, ancak sorunlara neyin neden olduğunu bilmiyorsanız, uygulamanızı yeniden başlatmadan kaynak kodlarınızın belirli bir bölgesini yeniden çalıştırmak isteyebilirsiniz.
  6. Vektör, liste, deque ve harita gibi STL için yerleşik destek yok.
  7. İzleme noktası yok. Bir değişkenin değiştiği noktada uygulamanızı hemen durdurmanız gerektiğinde bu özelliğe sahip olmanız gerekir. Intel tabanlı bilgisayarlarda donanım izleme noktaları bulunur, böylece izleme noktaları sisteminizi yavaşlatmaz. İzleme noktaları kullanmadan bulunması zor hataların bulunması uzun saatler alabilir. "Visual Studio", "izleme işaretçisini" "Data BreakPoint" olarak adlandırır.

Liste çok daha uzun olabilir.

Netbeans veya diğer benzer IDE'lerin dezavantajlarından öylesine sinirlendim ki GDB'nin kendisini öğrenmeye başladım. GDB'nin kendisinin çok güçlü olduğunu gördüm. GDB yukarıda belirtilen tüm "dezavantajlara" sahip değildir. Aslında GDB çok güçlü, birçok yönden Visual Studio'dan bile daha iyi. Burada size çok basit bir örnek göstereceğim.

Örneğin, şöyle bir diziniz var:

struct IdAndValue
{
  int ID;
  int value;
};


IdAndValue IdAndValues[1000];

Uygulamanız durduğunda ve IdAndValues'daki verileri incelemek istediğinizde. Örneğin, dizideki belirli bir "ID" için sıra sayıları ve değerleri bulmak istiyorsanız, aşağıdaki gibi bir komut dosyası oluşturabilirsiniz:

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

Uygulamanızdaki tüm değişkenleri geçerli bağlamda, kendi değişkenlerinizde (örneğimizde, $ i), iletilen bağımsız değişkenler (örneğimizde, $ arg0) ve tüm GDB komutları (yerleşik veya kullanıcı tanımlı) kullanabilirsiniz ).

"1" kimliği için değerleri yazdırmak üzere GDB isteminden PrintVal 1'i kullanın

Bu arada, NetBeans bir GDB konsolu ile birlikte gelir, ancak konsolu kullanarak Netbeans'i çökertebilirsiniz. Ve bu yüzden konsolun NetBeans'te varsayılan olarak gizlendiğine inanıyorum


İyi bir nokta. Ancak maalesef GDB son derece dik bir öğrenme eğrisine sahiptir. Yıllardır kullanıyorum ve hala makroları hiç kullanmadım ve (bunun makrolar aracılığıyla mümkün olduğunu bilmeme rağmen !) Attığım herhangi bir STL kodu modern IDE'lerden daha iyi hata ayıklanamaz.
Konrad Rudolph

GDB'deki komutların çoğunda ustalaşmak için 2 gün geçirdim. GBD'nin ham gücünü öğrendikten sonra, asla geriye bakmayacaksınız. Bulması zor hataları düzelttiğinizde size çok zaman kazandıracak.
Charles Zhang

11

Şimdiye kadar iyi bulunan " Geany " kullanıyorum , hızlı ve hafif IDE.

Geany'nin özellikleri arasında :

  • Kod katlama
  • Oturum kaydetme
  • Sözdizimi vurgulama, sekmeler, otomatik girinti ve kod tamamlama gibi temel IDE özellikleri
  • Basit proje yönetimi
  • Derleme sistemi
  • Renk seçici (web geliştirme sırasında şaşırtıcı derecede kullanışlı)
  • Gömülü terminal emülasyonu
  • Çağrı ipuçları
  • Sembol listeleri
  • Ortak yapıların otomatik tamamlanması (if, else, while vb. Gibi)

10

Eclipse for Java'yı seviyorsanız, Eclipse CDT'yi öneririm. C / C ++ desteği Java için olduğu kadar güçlü olmasa da, özelliklerin çoğunu hala sunuyor. Makefiles ile deneyiminiz yoksa C / C ++ projeleriyle çalışmayı kolaylaştıran Yönetilen Proje adlı güzel bir özelliğe sahiptir. Ama yine de Makefiles'i kullanabilirsiniz. C ve Java kodlaması yapıyorum ve CDT ile çok mutluyum. C'ye gömülü bir cihaz ve bu cihazla konuşan Java'daki bir uygulama için ürün yazılımı geliştiriyorum ve her ikisi için de aynı ortamı kullanmak gerçekten güzel. Sanırım muhtemelen beni daha üretken yapıyor.


9

İnsanların bir IDE için orijinal sorudaki talebi nasıl tamamen özlediklerini seviyorum. Linux bir IDE DEĞİLDİR. Bu kelimelerin anlamı bu değil. Ben vi ve gcc kullanarak yapmak c ve c ++ öğrendim ve yapmak, ve onlar yeterli araç değildir, ancak bir IDE DEĞİL demiyorum. Vim veya emacs gibi daha ayrıntılı araçlar veya istediğiniz herhangi bir süslü düzenleyici kullansanız bile, komut satırına komut yazmak bir IDE değildir.

Ayrıca, hepiniz bildiğiniz gibi görsel stüdyonun bir parçası var mı? Bir IDE'nin "sınırlayıcı" olduğu fikri, IDE'yi bazı şeyleri hızlandırmak için kullanabiliyorsanız, ancak yine de gerektiğinde komut satırı öğelerine geri dönebiliyorsanız, saçmadır.

Bütün bunlar, yukarıda birkaçının da olduğu gibi Kod bloklarını denemenizi öneririm. Onun iyi bir kod vurgulama var, bir proje oluşturmak için oldukça zahmetsiz bir yol var, onu kodlamak, çalıştırmak, vb, bu gerçek bir IDE çekirdek ve oldukça istikrarlı görünüyor. Hata ayıklama berbat ... Herhangi bir linux / unix varyantında hiç iyi bir interaktif hata ayıklayıcı görmedim. gdb değil mi? Görsel stüdyo tarzı hata ayıklamaya alışkınsanız, şansınız yok demektir.

Her neyse, eşyalarımı toplayacağım, tek manzaralı linux kalabalığının bunu bağırıp beni hemen şehirden çıkaracağını biliyorum.


Haklısın. Bildiğimiz gibi bir IDE değil. Ancak OP'nin bu cevaba oy vermesi ilginç! Renklerimi direğe çivilemek: Ben komut satırı makefiles hayranıyım.
ScrollerBlaster

Sonunda biraz beyni olan biri ... Sanırım diğerleri sadece emacs / vim ile her şeyi yapabilirlerse önemsiz şeyleri kodlarlar.
Pippo


7

Ultimate ++ 'ın IDE'sini oldukça seviyorum . Kendi kütüphaneleriyle kullanılmak üzere tasarlanmış bazı özelliklere sahiptir (BTW, GTK + veya QT'den satın almak istemiyorsanız oldukça güzel bir araç takımıdır), ancak genel C ++ projeleriyle mükemmel bir şekilde çalışır. İyi kod tamamlama, iyi sözdizimi renklendirme, entegre hata ayıklama ve çoğu modern IDE'nin desteklediği diğer tüm özellikleri sağlar.


Vaov! Gerçekten harika görünüyor ekran görüntüleri ile ilgili! Kesinlikle bir deneyeceğim. Bunun için ödeme yapmam gerekip gerekmediğini biliyor musun? (Bu Ultimate ++ web sitesinde tam olarak açık değildir)

Hayır, "konuşma", "bira" ve "binmek" gibi ücretsizdir. Yamaları kabul etme konusunda oldukça
açıklar


6

Belki de Eclipse için Linux Araçları Projesi ihtiyaçlarınızı karşılayabilir mi?

Linux Araçları projesi, Linux geliştiricilerine tam özellikli bir C ve C ++ IDE getirmeyi amaçlamaktadır. CDT'nin kaynak düzenleme ve hata ayıklama özellikleri üzerine inşa ediyoruz ve GNU Autotools, Valgrind, OProfile, RPM, SystemTap, GCov, GProf, LTTng, vb. Gibi popüler yerel geliştirme araçlarını entegre ediyoruz. RPM .spec editörü, Autotools entegrasyonu oluşturur, Valgrind yığın kullanım analizi aracı ve OProfile çağrı profili oluşturma araçları.


6

Linux'ta çok sayıda IDE var:

In my deneyim, en değerli Eclipse ve Qt Creator . Her ikisi de tüm "standart" özellikleri sağlar (yani, otomatik tamamlama, sözdizimi vurgulama, hata ayıklayıcı, git entegrasyonu). Eclipse'in aynı zamanda yeniden düzenleme işlevleri sunduğunu belirtmek gerekirken, Qt Creator Valgrind ile entegrasyon ve uzak hedeflere dağıtım için destek sağlar.

Ayrıca ticari CLion IDE de preety iyi görünüyor (ancak yoğun olarak kullanmadım).


5

Anjuta'nın Gnome kullanıcıları için oldukça kaygan olduğunu duydum. KDevelop ile biraz oynadım ve güzel, ama özellik eksik. Code :: Blocks da çok umut vericidir ve bunu en çok seviyorum.


5

Sun Studio sürüm 12 ücretsiz olarak indirilebilir (ÜCRETSİZ ve ücretli destek mevcuttur) - http://developers.sun.com/sunstudio/downloads/thankyou.jsp?submit=%A0FREE+Download%A0%BB%A0 .

Bu IDE'de eklenti desteği de dahil olmak üzere kod tamamlama ve hata ayıklama desteğine sahip olduğunuzdan eminim.

Sun Studio, Linux ve Solaris için kullanılabilir. forumlar: http://developers.sun.com/sunstudio/community/forums/index.jsp . Sun Studio Linux forumları: http://forum.sun.com/forum.jspa?forumID=855

Bu araçla ilgili görüşlerinizi almaktan memnuniyet duyacağım.

BR,
~ A



5

Ve sonra bunun sadece orada çalıştığın bir şey olmadığını fark ettim * ve her şeyi attım, kılavuzları okumak için birkaç gün geçirdim, kabuğumu (bash) kurdum, bir GVIM ortamı kurdum, GCC / binutils araç zincirini öğrendim, yapmak ve gdb ve sonsuza dek mutlu yaşadı.

Çoğunlukla aynı fikirdeyim, ama sorun aynı zamanda bir algıdan biri: seçilen herhangi bir IDE'de (veya başka bir ortamda) üretken olmanın ne kadar zor olduğunu unutuyoruz. IDE'leri (Visual Studio, NetBeans, Eclipse) birçok yönden inanılmaz hantal buluyorum.

Eski bir UNIX adamı olarak daima Emacs kullanıyorum. Ama bunun oldukça dik ve uzun bir öğrenme eğrisi var, bu yüzden yeni gelenlere önerebileceğimden emin değilim.

Ben ikinci olurdum; Emacs'ı hem Linux hem de MSW'de (XP2, W2K) birincil düzenleyicim olarak kullan. Dik bir öğrenme eğrisine sahip olduğunu kabul etmiyorum , ancak çok sayıda özellik nedeniyle uzun bir öğrenme eğrisine sahip olduğunu söyleyebilirim . Kısa sürede üretken olabilirsiniz, ancak isterseniz gelecek yıllar boyunca yeni özelliklerini öğrenebilirsiniz.

Ancak, Emacs'ın tüm özelliklerinin açılır menülerde mevcut olmasını beklemeyin, orada bulmak için çok fazla işlevsellik var.

Ölçtüğüm gibi, yıllardır MSW'de GNU Emacs kullandım. Ve ben 2008'e "yükseltme" kadar Visual Studio ile her zaman iyi çalıştı; şimdi bazen diskten dosyaları ferahlatıcı önce birçok saniye geciktirir. VS penceresinde düzenlemenin ana nedeni "Intellisense" kod tamamlama özelliğidir.



5

Vim kullanmama rağmen, bazı iş arkadaşlarım oldukça iyi görünen SlickEdit kullanıyor . Entegre hata ayıklama konusunda emin değilim çünkü bunu özel projemizde yapamayacağız.

SlickEdit, çapraz referans ve etiket atlama ile büyük kod tabanlarında gezinmek için iyi bir desteğe sahiptir. Tabii sözdizimi vurgulama ve kod tamamlama gibi temel şeyler de var.


5

Eclipse CDT ve Qt Creator kullanıyorum (Qt uygulamaları için).

Bu benim tercihlerim. Bu çok müstehcen bir soru ve geliştiriciler kadar çok cevap var. :)


4

SlickEdit. 2005'ten beri hem Windows hem de Linux'ta SlickEdit'i kullandım ve sevdim. Ayrıca Visual Studio'da (5, 6, 2003, 2005) ve sadece Emacs ve komut satırı ile çalışma deneyimim var. Dış yapımlarla SlickEdit kullanıyorum, takım arkadaşlarımdan bazıları SlickEdit, diğerleri Emacs / vi kullanıyor. Entegre hata ayıklayıcı, entegre versiyon kontrolü, entegre inşa sistemi kullanmıyorum: Genellikle gerçek acı olmak için çok fazla entegrasyon buluyorum. SlickEdit sağlam (çok az hata), hızlı ve sezgisel. Bir Alman arabası, bir sürücü arabası gibi.

SlickEdit'in en yeni sürümleri beni ilgilendirmeyen birçok özellik sunuyor gibi görünüyor, ürünün gelecekte şişirilip seyreltileceğinden biraz endişeliyim. Şimdilik (V13.0 kullanıyorum) harika.



3

Eğer vim'i uzun süre kullanıyorsanız, o zaman bunu IDE'niz olarak yapmalısınız. Çok fazla eklenti var. Bunlardan birkaçını oldukça kullanışlı buldum ve burada derledim, bir göz atın.

Ve orada vi / vim ipuçları ve püf noktaları serisinde çok daha fazlası.

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.