Linux用のC ++ IDE?[閉まっている]


209

プログラミングの視野をLinuxにも広げたいと思っています。優れた信頼できる基本的なツールセットは重要です。IDEよりも基本的なものは何ですか。

私はこれらのSOトピックを見つけることができました:

軽量な IDEを探しているのではありません。IDEがお金に見合う価値があれば、私がそれを支払うので、無料である必要はありません。

私の質問、それから:

Linuxで利用できる優れたC ++プログラミングIDEは何ですか?

最小値はかなり標準的なものです。構文の強調表示、コード補完(インテリセンスやそのEclipseの対応など)、統合されたデバッグ(たとえば、基本的なブレークポイント)です。

私は自分で検索しましたが、特にLinuxでC ++コーディングの経験がほとんどない私のような人にとって、良いものと悪いものを手で区別することはほとんど不可能です。私はEclipseがC ++をサポートしていることを知っています。私はそのIDE for Javaが本当に好きですが、C ++に何か良いことはありますか?

2番目の投稿には実際にいくつかの良い提案がありますが、私が見落としているのは、サジェステッドIDEがユーザーにとって非常に優れている理由です。その(欠点)は何ですか?

たぶん私の質問はしたがって:

どのIDEを提案しますか(あなたの経験を与えてください)、そしてなぜですか?


1
これは、1日か2日で4番目の「LinuxでどのIDEを使用すべきか」という質問だと思います。
ベンコリンズ

たぶん、あなたはここに新しい質問にこの質問を頼まれた日付を見て...または指している必要があります
スヴェン

前回のリリースでは、Eclipseはeclipse.org/linuxtoolsをリリーストレインに統合しました。このプロジェクトは、Linux固有のツールを統合することにより、EclipseをLinux上のより本格的なC / C ++ IDEにすることを目的としています。
Jean Hominal

回答:


259

当初:混乱

最初にこの回答を書いたとき、私は最近(長年の経験を持つ)Visual StudioからLinuxへの切り替えを行いました。最初に行ったのは、妥当なIDEを見つけることでした。当時、これは不可能でした。優れたIDEは存在しませんでした。

エピファニー:UNIXはIDEです。それのすべて。1

そして、LinuxのIDEはそのツールのコマンドラインであることがわかりました。

  • まず、シェルをセットアップします
  • そしてあなたのエディタ; 毒を選ぶ—どちらも最先端の技術です。

必要に応じて、エディターを適切に動作させるためにいくつかのプラグインをインストールして構成する必要があります(これが厄介な部分です)。たとえば、Vimのほとんどのプログラマーは、スマートオートコンプリート用のYouCompleteMeプラグインを利用できます。

それを行うのならば、シェルはさまざまなツールと対話するために、あなたのコマンドインターフェースである-などのデバッガ(GDB)、プロファイラ(gprofを、valgrindの)、あなたは使用してプロジェクト/ビルド環境をセットアップするメイクCMakeのSnakeMakeや各種のいずれかを代替。そして、バージョン管理システムでコードを管理します(ほとんどの人はGitを使用します)。また、tmux(以前はscreen)を使用して多重化(=複数のウィンドウ/タブ/パネルを考える)して、ターミナルセッションを永続化します。

重要なのは、シェルといくつかのツール作成規約のおかげで、これらすべてが互いに統合されているということです。そして、そのようにLinuxのシェルは、真に統合開発環境である、完全に他の現代のIDEと同等の、。(これは、個々のIDEにコマンドラインにない機能がないことを意味するものではありませんが、その逆も当てはまります。)

それぞれ独自に

上記のワークフローが習慣になったら、どれほどうまく機能するかを誇張することはできません。しかし、一部の人々は単にグラフィカルエディターを好んでおり、この回答が最初に書かれて以来、Linuxはいくつかの異なるプログラミング言語用の優れたグラフィカルIDEのスイートを獲得しています(ただし、私の知る限り、C ++には対応していません)。私のように、あなたがそれらを使用しなくなったとしても、彼らに試してみてください。以下は、ほんの少し偏った選択です。

このリストは完全ではないことに注意してください。


1 dsmのコメントからそのタイトルを盗みました。

2以前はここでVimを参照していました。そして、単純なVimはまだ機能を超えていますが、Neovimは有望な再起動であり、いくつかの古いいぼを近代化しています。


223
私は強く同意しません。きちんとしたアイデアは、何に取り組んでいても重要です。生産性が大幅に向上します。私はコードブロックを使用していて、VIに戻ることはほとんど不可能だとわかりました。Mac、Win、Linuxでコーディングしました。ビジュアルスタジオが最高のIDEであると思いますが、codeblocksが近づいています。
DavidG、2008年

35
David、たぶん、IDEが提供するツールチェーンからあなたが正確に何を欠いているのか(あなた自身の答え…)詳細を述べることができます。私が言ったように、私は強力なIDEのバックグラウンドから来ており、私の生産性の向上はあなたの正確な逆でした。
Konrad Rudolph、

48
Vimはどのようなリファクタリングサポートを提供していますか?Eclipse(Linuxで実行される)では、300か所で呼び出されたとしても、希望するJavaメソッドの名前を変更できます。Vimで簡単にできますか?
quant_dev

25
quant_dev:リファクタリングでは、何らかの方法でソースコードを解析する必要があります。私の知る限り、VIMモジュールはそれを実行しないため、質問に対する答えは「なし」です。これが、JavaなどのIDE中心の言語にIDEを好む理由の1つです。C ++のリファクタリングサポート(など)は(IDEであっても)とにかく最小限なので、これはC ++には適用されません。
Konrad Rudolph、

11
@hasen:ああ、でもその大部分は可能です。たとえば、スコープを意識した名前の変更。そして私を信じて、これは大きいです。そして、Ecplise(eg)はここで多くの作業を節約できます。
Konrad Rudolph

86

私の個人的なお気に入りは、CodeLite 2.x IDEです。

参照:http : //www.codelite.org

CodeLiteを使用するかどうかの決定は、次のLinux用C ++ IDEに関する調査に基づいています。

  • CDTプラグインを備えたEclipse Galileo
  • NetBeans 6.7(SunStudio IDEのベースでもあります)
  • KDevelop4
  • CodeBlocks 8.02
  • CodeLite 2.x

結局、私はCodeLite 2.xを使用することにしました。

以下に、言及されたC ++ IDEに関するいくつかの長所と短所を示します。これは私の個人的な意見のみを反映していることに注意してください!

編集:SOFがテーブルをサポートしていないのは残念なことなので、段落で書く必要があります...

CDTプラグインを備えたEclipse Galileo

長所:

  • かなり速い
  • Java、Perlもサポート(EPICプラグインを使用)
  • 一般的に使用され、よく維持されている
  • 他のOSフレーバー(Windows、MacOS、Solaris、AIX(?))でも利用可能

短所:

  • GUIは非常に混乱し、一貫性がない-まったく直感的ではない
  • 重い
  • CVS(AFAIK)のみをサポート

NetBeans 6.7(これはSunStudio IDEのベースでもあることに注意してください)

長所:

  • 私が今まで見た中で最も直感的なGUIの1つ
  • Java、Python、Rubyもサポート
  • CVS、SVN、Mercurialを統合
  • 一般的に使用され、よく維持されている
  • 他のOSフレーバー(Windows、MacOS、Solaris)でも利用可能

短所:

  • 極端に遅い
  • 重い
  • インデントにスペースを使用していますが、これは私の仕事ではポリシーではありません。これは構成可能であると確信していますが、その方法を見つけることができませんでした

KDevelop4(注:あまりテストしていません)

長所:

  • Linuxで一般的に使用されます
  • CVS、SVN、Mercurialを統合

短所:

  • GUIはやや古風に見えます
  • 重い
  • KDE環境に非常に固有

CodeBlocks 8.02(注:あまりテストしていません)

長所:

  • かなり速い

短所:

  • GUIはやや古風に見えます(ただし、起動画面は優れています)。
  • エディターのフォントが非常に小さい
  • 一部のアイコン(例:デバッガ関連のアイコンの開始/ステップ)が非常に小さい
  • ソース管理統合なし

CodeLite 2.x(注:これは私の個人的なお気に入りです)

長所:

  • Linuxで私が見た中で最高のモダンで直感的なGUI
  • 軽量
  • かなり速い
  • SVNを統合
  • 他のOSフレーバーでも利用可能(Windows、MacOS、Solaris(?))

短所:

  • CVS統合なし(仕事で使用する必要があるため、これは私にとって重要です)
  • Java、Perl、Pythonのサポートなし(あると便利です)

14
Eclispeは、プラグインを介してHg、Git、SVNなどをサポートしています。そして、スタートアップ/スプラッシュ画面は巨大なボールを吸います。彼らは資源を吸い込み、ほとんど利益をもたらさない。そして、通常、アプリが読み込まれるのを待つ間、私が作業しているものの前にポップアップします。PortableAppsとEclipseはそれらを取り除く必要があります。
Chris K

4
Codeliteには、デバッグ用にVisual Studioと同じキーボードショートカットがあり、Visual中毒者にとって非常にユーザーフレンドリーです。
ラウルスーパー

ここで古い馬を倒すかもしれませんが、IMO EclipseのGUIは本当に他に類を見ません。はい、最初は学ぶのは難しいですが、急な学習曲線を上った後に生産性が急上昇し始めるViのようなものです。要点を証明するには、Ctrl + 3を押してみてください。EclipseIMOの非常に優れた機能の1つです。
kizzx2 2010

「短所:インデントにスペースを使用[...]これは構成可能だと確信していますが、その方法を見つけることができませんでした。」つまり、実際にはツールに慣れていないということです。そうでなければ、最終的にはオプションが見つかります。
JohanBoulé2010

5
CodeLiteは、象牙質のアイスガムを噛んでいるように素晴らしいです。口にフレッシュでミントな味わいが残ります。Eclipseは、機能的ではありますが、使用すると味が変わった後も嘔吐します。これは子供っぽく聞こえるかもしれませんが、実際には、それらを使用する「感触」を説明するのに最適なメタファーです。他の人も私に同意するだろう。
Didier

75
  1. コード::ブロック
  2. Eclipse CDT

すぐにIDEだけでは不十分であることがわかり、とにかくGCCツールチェーンを学習する必要があります(少なくとも基本的な機能を学習することは難しくありません)。しかし、IDE、IMOによる移行の痛みを軽減することに害はありません。


codeblocksと+1の場合、少なくともシェルからプログラムをコンパイルして実行する方法を確実に学びたいと思います。原因として、code :: blocksには欠点があります。
Earlz

Eclipseはまったく軽量ではありません
IMHO

7
コードブロックの場合は-1。Eclipseの場合は-1。どちらもデバッグ中にUIを変更します。初心者ユーザーが通常迷子になると感じるところまで。どちらもフォークをデバッグできません。どちらもSVN / CVS統合に関して厄介な問題を抱えています。(Subclipseと連携した最新のEclipseは、2011年4月28日の時点でGnomeで壊れており、10分ごとにクラッシュします)。ソース管理の設定は悪夢であり、これらのIDEとの統合も同様に困難です。
bleepzter

4
@bleepzter -1(SVN / CVSを使用して;)で開始する場合
OneOfOne

1
あらゆる点で非常に優れているMercurial、Git、Bazaar。
OneOfOne

66

このトピックにもう少し知識を追加するための簡単な答え:NetBeansを
必ず確認する必要があります。Netbeans 6.7には次の機能があります。

  • C / C ++プロジェクトおよびテンプレート:構文の強調表示、自動コード補完、自動インデントをサポートします。
  • C / C ++デバッガー
  • コンパイラー構成、構成マネージャー、およびMakefileサポート(ウィザード付き)をサポートします。
  • クラスウィンドウ、使用状況ウィンドウ、ファイルナビゲーションウィンドウ(またはパネル)があります。
  • マクロ展開ビューは、また、ツールチップ
  • QT開発のサポート。

これは完璧な(そしてはるかに優れた)Visual Studioの代替手段であり、C / C ++を学ぶための非常に優れたツールだと思います。

幸運を!


2
また、C ++にも非常に適しています。これまでで最高の言語パーサーを備えています。
JohanBoulé2010

1
c ++開発では、EclipseよりもNetbeansを楽しんだ。
Thomas Langston、

9
NetBeansはEclipseよりもはるかに楽しいので、もっと多くの人がそれを実感し始めたいと思います。
Didier A.11年

1
数週間Eclipseと戦った後、私はこれを見つけ、NetBeansに切り替え、ありがとうございました。インターフェースが優れており、応答性が高く、直感的でカスタマイズ可能です。Beats Eclipseハンドダウン
フレデリク

1
EclipseよりもNetBeansの方がはるかに優れているという別の投票があります。また、これまでに使用したことがない最高のVimエミュレーション(プラグインとして)も備えています。
thinkon

52

少なくともQt固有のプロジェクトでは、Qt Creator(Nokia / Trolltech / Digia)は大きな期待を示しています。


10
Qt以外のプロジェクトにも使用します。
チャンス

それはいいです。私はそれを試してみて、とても気に入りました。
タイラーロング、

32

それがあなたにとってどうであったか、あなたが変えなければならなかったものをもう少し明確にしてもらえますか?たぶん、あなたが使用した情報へのリンクを提供することで、私を正しい方向に向けることができるでしょう。

私の最初のソースは、実際にはツールのmanページでした。入力するだけ

$ man toolname

コマンドライン($ここでは、入力ではなくプロンプトの一部です)。

プラットフォームにもよりますが、かなり上手く書かれており、インターネット上でも見つけることができます。の場合make、私は実際に数時間かかった完全なドキュメントを読みました。実際、これはほとんどの場合必要または役に立たないと思いますが、Linuxでの最初の割り当てでは、洗練されたmakefileを必要とするいくつかの特別な要件がありました。makefileを書いた後、経験の浅い同僚にいくつかの微調整と修正を加えました。その後、私はかなり知っていましたmake

私はGVIMを使用しましたが、これまでにある程度の経験があったためです(Emacsや代替案については何も言えません)。他の人の.gvimrc設定ファイルを読むことは本当に役立つと思います。多くの人がそれをウェブに載せます。こちらが私のものです。

すべてのbinutilsを一度にマスターしようとしないでください。機能が多すぎます。ただし、一般的な概要を把握しておくと、将来何かが必要になったときにどこを検索すればよいかがわかります。あなたはすべきである、しかし、すべての重要なパラメータを知っているg++ld(明示的に防止する場合を除き、自動的に呼び出されますGCCリンカーツール)。

また、私は好奇心旺盛ですが、コードを作成するときにコード補完と構文の強調表示がありますか?

構文の強調表示:はい、Visual Studioよりもはるかに優れています。コード補完:YES- っぽいです。まず、Visual StudioでもC ++コード補完を使用しなかったことを認めなければなりません(VBおよびC#と比較して)十分ではなかったためです。今はあまり使用していませんが、GVIMに C ++のネイティブコード補完サポートがあります。ctagsライブラリとtaglistのようなプラグインと組み合わせると、これはほぼIDEになります。

実は、私が始めたのはアーミン・ロナッチャーの記事でした。テキストを読む前に、最後のスクリーンショットを見てください!

(構文)エラーが発生する前に、最初にコンパイルする必要がありますか?

はい。しかし、これはVisual Studioでも同じです(私はWhole Tomatoを使用したことがありません)。もちろん、構文の強調表示では一致しない大括弧が表示されますが、それだけです。

そして、どのようにデバッグしますか(再びブレークポイントなどを考えますか)?

私はgdbどちらがコマンドラインツールであるかを使用します。と呼ばれるグラフィカルなフロントエンドもありDDDます。gdbは最新のデバッグツールであり、IDEで実行できるすべてのことを実行できます。行がインデントまたはフォーマットされていないためにスタックトレースを読み取ることだけが本当に私を困らせます。多くのテンプレートを使用しているときに情報をスキャンするのは本当に難しいです(私はそうします)。しかし、それらもIDEのスタックトレースを混乱させます。

私が言ったように、私は高校でWindowsのメモ帳とコマンドラインのjavaコンパイラを使用してJavaプログラミング言語の最初のステップを設定する「喜び」を持っていました。確かに、当時私がまともなIDEを持っていた他のプログラミングコースと比較できたとき

EmacsやGVIMなどの最新の全機能を備えたエディターをメモ帳と比較することもできません。メモ帳は装飾されたTextBoxコントロールであり、これは本当にすべての違いを生みます。さらに、コマンドラインでの作業は、LinuxとWindowsではまったく異なります。Windows cmd.exeはひどく機能していません。PowerShellの方がはるかに優れています。

/ EDIT:GVIMにはタブ付き編集があることを明示的に言及する必要があります(タブ付きブラウジングのように、tabs-vs-spacesではありません)。隠されているわけではありませんが、見つけるのに年齢を要しました。ファイルを開くとき、または新しいファイルを作成するとき:tabeは、プレーンの代わりに入力するだけ:eで、GVIMが新しいタブを作成します。タブ間の切り替えは、カーソルまたはいくつかの異なるショートカットを使用して実行できます(プラットフォームによって異なります)。キーgt(タイプg、次にtコマンドモード)はどこでも機能し、次のタブまたはタブ番号にジャンプします。n数値が指定された場合。入力:help gtしてさらにヘルプを表示します。


@confuzatron:いいえ、いくつかの理由でgdbを使用しています。最も重要なことに、私は通常、Xサーバーを実行せずに作業します。また、DDDがかなり長い間更新を見ていなかったという事実については、少し不快です。一方、プロジェクトの所有権は変更されたばかりで、変更が進んでいるようです。
Konrad Rudolph

タブ情報wrt gvimをありがとう、決して新しいことはありません:)
Letholdrus

VS2010は、コンパイルせずに構文エラーを強調表示します。
Candy Chiu

@Candy確かに、VS2010はこの点で多くの点を変更し、バックグラウンドコンパイル用の高度な機能を追加しました。しかし、gvimはプラグイン経由で多くの機能を追加しています。特に、おそらくclang_completeプラグインを介してコンパイルしなくても、構文エラーを強調表示できるでしょう。この回答は2009年のものであり、一部は古くなっています。しかし、すべての面で改善があり、多かれ少なかれ均等になっています。
Konrad Rudolph

25

答えを繰り返すのではなく、もう少し追加できると思います。

Slickeditは優れたIDEです。

スローダウンしたり、インデックス作成に時間を費やすことなく、大規模なコードベースを適切にサポートします。(これはeclipseのcdtで私が抱えていた問題です)。実際には、Slickeditの速度がおそらく最も優れています。
コード補完は適切に機能し、自動フォーマット、美化、リファクタリングなどのオプションが多数あります。
デバッグ機能が統合されています。
プラグインのサポートとそれらを作成するかなりアクティブなコミュニティがあります。
理論的には、プロジェクトを直接作成できるため、従来のメイクファイル関連の作業をしている人とうまく統合できるはずですが、試したときのようにスムーズに動作しませんでした。
Linuxに加えて、必要に応じてMacとWindowsのバージョンがあります。


23

私は昔のUNIXの人として、常にEmacsを使用しています。しかし、それはかなり急で長い学習曲線を持っているので、私が初心者にそれを勧めることができるかどうかはわかりません。

Linuxには「良い」IDEは本当にありません。EclipseはC / C ++にはあまり適していません(CDTは改善されていますが、まだあまり役に立ちません)。その他には、探しているすべての機能がありません。

すべての個別のツール(gcc、make、gdbなど)がどのように機能するかを学ぶことは本当に重要です。そうすることで、Visual Studioの操作方法が非常に制限されてしまうことがあります。


Eclipse CDTは「まだあまり役に立ちませんか?」詳しい説明は役に立ちます。私はそれが非常に便利で使いやすいと思います。
John Zwinck、2009年

「まだあまり役に立たない」:オートコンプリートが機能しないことが多く、宣言への移動や関数の使用が機能しない、構文の強調表示が機能しない、リファクタリングが機能しないなど、viを使用するよりは少しましです。GDBフロントエンドUIは、IMHOを使用する価値がある唯一のものです。
クリストファージョンソン

CDTでリファクタリングを実際に試したことはありませんが、他のことは機能しているようです。かなり大きな最大メモリ使用量の構成パラメーター(8〜12 GBのRAMを持っています)を使用してEclipseを実行していることに注意しますが、問題はないようです。
John Zwinck、2009年

前回Eclipse CDTを試したとき、オートコンプリートの構文/セマンティクスパーサーによって、IDEが呼び出されるたびにIDE全体が8秒間フリーズしました。機能全体が役に立たなくなった。独自のスレッドで実行されなかったなんて信じられません。これは2年前だったので、うまくいけば今は修正されています。(右?)

CDTは、QTとBoostへの進出に最適です。Mingwを使用するWindowsでは問題がありますが、適切なPosix環境ではオートコンプリートが適切に機能します。宣言への移動は、実際には1つの明白な穴です。しかし、C ++が複数の同一の宣言を持つことができることを考えると、私は驚きません。これは、Javaよりも解決が難しい問題です。
Chris K

18

Netbeansをチェックアウトしてください。Javaで書かれているので、OSに関係なく同じ環境が得られ、C ++だけでなく、他にも多くの機能がサポートされます。

IDEは非常に個人的な選択であると思うので、私はあなたを説得しようとはしません。私にとっては、高速であり、コード化した言語をサポートし、IDEに期待する標準機能を備えているため、生産性が向上します。


5
これに+1を追加できます。netbeansには、IDEで見た中で最高のC ++言語パーサーがあります。日食のCDTに勝る。
JohanBoulé10年

18

この質問のちょっとしたフォローアップ...

LinuxでC ++をプログラミングするためのメインの「GUI」ツールとしてVimを使い始めてから1か月が経ちました。最初は、学習曲線は確かに少し急でしたが、しばらくして、適切なオプションがオンになっていて、スクリプトが実行されていたので、本当に慣れました。

Vimをニーズに合わせて形作る方法が気に入っています。キーマッピングを追加/変更するだけで、Vimは生産性の高い「IDE」に変わります

LinuxでC ++プログラムをビルドおよびコンパイルするためのツールチェーンも、非常に直感的です。makeとg ++は使用するツールです。

デバッガdddは本当にしかし、良いことではありませんが、私はそれを正しく習得する時間がなかったので、多分だという。

したがって、Linuxで優れたC ++ IDEを探している、または探していたすべての人にとって、私と同じように、最善の策はLinux自体で利用可能な標準ツール(Vim、g ++、ddd)にあり、少なくとも実際に使用する必要がありますそれら、他のものを探す前に...

最後に大事なことを言いますが、ここでkonradの回答に本当に感謝します。Linux開発環境で自分の道を見つけるのに本当に役立ちました。ありがとうございます。

私もこの質問を閉じていませんので、人々はまだ反応することができます、あるいはおそらく本当に本当に素晴らしい答えに新しい提案や追加を追加することさえできます...


IntelliSense風の機能をVim + ctagsで機能させることはできますか?実際にはオートコンプリートだけでなく、関数のパラメーターリストなどの状況依存情報ですか?
kizzx2

@ kizzx2:はい、多くのオプションあります
Fred Nurk


12

より短い答えは、好きな「エディター」を選択し、GDBコンソールまたは単純なGDBフロントエンドを使用してアプリケーションをデバッグすることです。デバッガーには、Netbeans sucks for C / C ++などの豪華なIDEが付属しています。エディターとしてNetbeansを使用し、デバッガーとしてInsightおよびGDBコンソールを使用しています。

洞察があれば、素晴らしいGUIとGDBの生の力が手に入ります。

GDBコマンドに慣れるとすぐに、GUIを使用して行うことができないことを行うことができるので、GDBコマンドを気に入っていただけるようになります。GDB 7以降のバージョンを使用している場合は、スクリプト言語としてPythonを使用することもできます。

ここのほとんどの人はIDEの「編集者」にもっと注意を向けました。ただし、C / C ++で大規模なプロジェクトを開発している場合は、70%以上の時間を「デバッガ」に費やす可能性があります。豪華なIDEのデバッガーは、Visual Studioより少なくとも10年遅れています。たとえば、NetbenasはVisual Studioと非常によく似たインターフェイスを持っています。ただし、そのデバッガーにはVisual Studioと比較していくつかの欠点があります。

  1. 数百の要素しか含まない配列であっても表示が非常に遅い
  2. 変更された値の強調表示なし(デフォルトでは、Visual Studioはウォッチウィンドウで変更された値を赤で表示します)
  3. 記憶を示す非常に限られた能力。
  4. ソースコードを変更して実行を続けることはできません。バグが発生するまでに長い時間がかかる場合は、ソースを変更して変更をライブで適用し、アプリケーションを引き続き実行したいとします。
  5. 「次のステートメント」を実行するように変更することはできません。Visual Studioでは、「次のステートメントを設定」を使用して、アプリケーションの実行方法を変更できます。この機能は、適切に使用しないとアプリケーションをクラッシュさせる可能性がありますが、時間を大幅に節約できます。たとえば、アプリケーションの状態が正しくないことがわかったが、問題の原因がわからない場合は、アプリケーションを再起動せずに、ソースコードの特定の領域を再実行することができます。
  6. vector、list、deque、mapなどのSTLの組み込みサポートはありません。
  7. ウォッチポイントはありません。変数が変更された時点でアプリケーションを停止する必要がある場合は、この機能が必要です。Intelベースのコンピューターにはハードウェアウォッチポイントがあるため、ウォッチポイントによってシステムの速度が低下することはありません。ウォッチポイントを使用せずに見つけにくいバグを見つけるには、何時間もかかる場合があります。「Visual Studio」は「ウォッチポインター」を「データブレークポイント」として呼び出します。

リストはもっと長くなる可能性があります。

Netbeansや他の同様のIDEの短所にとても苛立っていたので、GDB自体を学び始めました。GDB自体は非常に強力であることがわかりました。GDBには、上記の「欠点」がすべてあるわけではありません。実際、GDBは非常に強力であり、多くの点でVisual Studioよりも優れています。ここでは、非常に単純な例を示します。

たとえば、次のような配列があります。

struct IdAndValue
{
  int ID;
  int value;
};


IdAndValue IdAndValues[1000];

アプリケーションが停止し、IdAndValuesのデータを調べたい場合。たとえば、特定の「ID」の配列で序数と値を検索する場合は、次のようなスクリプトを作成できます。

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

現在のコンテキストでアプリケーション内のすべての変数、独自の変数(この例では$ i)、渡された引数(この例では$ arg0)、およびすべてのGDBコマンド(組み込みまたはユーザー定義)を使用できます)。

GDBプロンプトのPrintVal 1を使用して、ID "1"の値を出力します

ちなみに、NetBeansにはGDBコンソールが付属していますが、コンソールを使用すると、Netbeansがクラッシュする可能性があります。そして、それがコンソールがデフォルトでNetBeansに隠されている理由だと思います


いい視点ね。しかし、残念ながらGDBには非常に急な学習曲線があります。私はこれを何年も使用していますが、まだマクロを使用したことがありません(ただし、これはマクロを介して可能であることを知っています!)スローしたSTLコードは、最新のIDEよりもデバッグすることができません。
Konrad Rudolph

GDBのほとんどのコマンドを習得するために2日間を費やしました。GBDの生の力を知ったら、決して振り返ることはありません。見つけにくいバグを修正するときに、多くの時間を節約できます。
Charles Zhang

11

私は、これまでに良いとされている「Geany」を使用しています。その高速で軽量なIDEです。

Geanyの機能にはのものがあります

  • コード折りたたみ
  • セッションの保存
  • 構文の強調表示、タブ、自動インデント、コード補完などの基本的なIDE機能
  • シンプルなプロジェクト管理
  • ビルドシステム
  • カラーピッカー(Web開発時に驚くほど便利)
  • 組み込み端末エミュレーション
  • 通話のヒント
  • シンボルリスト
  • 一般的な構造の自動補完(if、else、whileなど)

10

Eclipse for Javaがお好きなら、Eclipse CDTをお勧めします。C / C ++サポートはJavaほど強力ではありませんが、ほとんどの機能を提供します。Makefileの経験がない場合に、C / C ++プロジェクトでの作業を容易にする、Managed Projectという優れた機能があります。ただし、Makefileは引き続き使用できます。私はCとJavaのコーディングを行っており、CDTには本当に満足しています。私はCの組み込みデバイス用のファームウェアと、このデバイスと通信するJavaのアプリケーションを開発しています。両方に同じ環境を使用するのは本当にいいことです。それはおそらく私がより生産的になると思います。


9

IDEの元の質問で、リクエストが完全に見落とされているのが気に入っています。LinuxはIDEではありません。それはそれらの言葉が意味するだけではありません。私はviとgccとmakeを使用してcとc ++を学びました、そしてそれらが適切なツールではないと言っていませんが、それらはIDEではありません。vimやemacsなどの手の込んだツールや、好きなエディタを使用しても、コマンドラインでコマンドを入力するのはIDEではありません。

また、makeがビジュアルスタジオの一部として存在することはご存じでしょうか。IDEが「制限的」であるという考えは、IDEを使用していくつかのことを高速化できても、必要に応じてコマンドラインに頼ることができる場合、ばかげたことです。

とはいえ、上記のいくつかのように、Codeブロックを試すことをお勧めします。その適切なコードの強調表示、プロジェクトの作成、コード化、実行などのかなり簡単な方法があり、実際のIDEのコアであり、かなり安定しているようです。デバッグはうんざりです... Linux / Unixバリアントでまともなインタラクティブデバッガーを見たことはありません。gdbではありません。ビジュアルスタジオスタイルのデバッグに慣れている場合は、ほとんど運がありません。

とにかく、私は私のものを詰めに行きます、私は1ビューのみのLinux群衆がこれを叫び、私をすぐに町から追い出すことを知っています。


あなたはポイントを持っています。私たちが知っているようなIDEではありません。しかし、OPがその回答に投票したのは興味深いことです。色をマストに釘付けにする:私はコマンドラインのメイクファイルのファンです。
ScrollerBlaster

最後に、いくらか頭脳のある人... emacs / vimですべてを実行できるのであれば、他の人は些細なことだけをコーディングしていると思います。
Pippo


7

私はUltimate ++のIDEがとても好きです。独自のライブラリで使用するように設計されたいくつかの機能があります(GTW +またはQTで購入したくない場合は、このツールキットは非常に優れたツールキットです)が、一般的なC ++プロジェクトで完全に機能します。適切なコード補完、優れた構文の色分け、統合されたデバッグ、および最新のIDEがサポートするその他すべての機能を提供します。


うわー!本当に素晴らしいスクリーンショットについて!ぜひやってみます。私がそれを払わなければならないかどうか知っていますか?(かなりアルティメット++のウェブサイト上でクリアされません)

いいえ、「スピーチ」、「ビール」、「ライド」のように無料です。彼らはパッチの受け入れについても非常にオープンであり、非常に頻繁にリリースするので、それはそれが得るのと同じくらいオープンソースです:)
dguaraglia


6

おそらく、Eclipse用のLinux Tools Projectがあなたのニーズを満たすことができるでしょうか?

Linux Toolsプロジェクトは、フル機能のCおよびC ++ IDEをLinux開発者に提供することを目的としています。CDTのソース編集およびデバッグ機能に基づいて構築し、GNU Autotools、Valgrind、OProfile、RPM、SystemTap、GCov、GProf、LTTngなどの一般的なネイティブ開発ツールを統合します。現在のプロジェクトには、LTTngトレースビューアーとアナライザー、 RPM .specエディター、Autotoolsビルド統合、Valgrindヒープ使用量分析ツール、およびOProfile呼び出しプロファイリングツール。


6

Linuxには多くのIDEがあります。

、私の経験、最も貴重であるEclipseのQtの創造主。どちらもすべての「標準」機能(つまり、オートコンプリート、構文の強調表示、デバッガー、git統合)を提供します。Qt CreatorがValgrindとの統合とリモートターゲットへのデプロイメントのサポートを提供する一方で、Eclipseはリファクタリング機能も提供することは注目に値します。

また、商用のCLion IDEはかなり美味しそうです(しかし、私はそれを広範囲に使用していません)。


5

AnjutaはGnomeユーザーにとっては非常に洗練されていると聞いています。私はKDevelopで少し遊んだのですが、それは素晴らしいですが、機能的には少し不足しています。Code :: Blocksも非常に有望で、私はそれが一番好きです。


5

Sun Studioバージョン12は無料でダウンロードできます(無料および有料サポートを利用できます)-http://developers.sun.com/sunstudio/downloads/thankyou.jsp ? submit = %A0FREE+ Download %A0%BB%A0

このIDEでのプラグインサポートを含む、コード補完とデバッグサポートがあると確信しています。

Sun Studioは、LinuxとSolarisで利用できます。フォーラム:http : //developers.sun.com/sunstudio/community/forums/index.jsp。Sun Studio Linuxフォーラム:http : //forum.sun.com/forum.jspa?forumID=855

このツールについてのフィードバックをお待ちしております。

BR、
〜A



5

そして、これは単にあなたがそこで働く方法ではないことに気づきました*、私はすべてを捨てて、数日かけてマニュアルを読み、シェル(bash)をセットアップし、GVIM環境をセットアップし、GCC / binutilsツールチェーンを学びました、 makeとgdbを使用して、その後も幸せに暮らしました。

ほぼ同意しますが、問題は認識の1つでもあります。選択したIDE(または他の環境)で生産性を高めるのがどれほど困難であったかを忘れてしまいます。IDE(Visual Studio、NetBeans、Eclipse)は、非常に多くの点で驚くほど扱いにくいものです。

私は昔のUNIXの人として、常にEmacsを使用しています。しかし、それはかなり急で長い学習曲線を持っているので、私が初心者にそれを勧めることができるかどうかはわかりません。

私はそれを2番目にします。LinuxとMSW(XP2、W2K)の両方で、プライマリエディタとしてEmacsを使用します。学習曲線が急であるとは思いませんが、膨大な数の機能があるため、学習曲線は長くなります。短時間で生産性を上げることができますが、必要に応じて、今後数年間、その新機能を学ぶことができます。

ただし、Emacsのすべての機能がドロップダウンメニューで利用できるとは限りません。機能が多すぎて、そこに見つけることができません。

私が言及したように、私は長年MSWでGNU Emacsを使用してきました。そして、私が2008に "アップグレード"するまでは、Visual Studioで常にうまく機能していました。現在、ディスクからファイルを更新するまでに数秒かかることがあります。VSウィンドウで編集する主な理由は、「Intellisense」コード補完機能です。



5

私はVimを使用していますが、同僚の何人かはSlickEditを使用しています。とにかく私たちの特定のプロジェクトでそれを行うことができないので、私は統合デバッグについて確信が持てません。

SlickEditは、相互参照とタグジャンプにより、大きなコードベースをナビゲートするための優れたサポートを備えています。もちろん、構文の強調表示やコード補完などの基本的な機能もあります。


5

私はEclipse CDTとQt Creator(Qtアプリケーション用)を使用しています。

それが私の好みです。これは非常に示唆に富む質問であり、開発者の数と同じくらい多くの答えがあります。:)


4

SlickEdit。私は2005年以来、WindowsとLinuxの両方でSlickEditを使用してきました。また、Visual Studio(5、6、2003、2005)での作業経験があり、Emacsとコマンドラインを使用した経験もあります。私は外部のメイクファイルでSlickEditを使用しています。チームメイトの一部はSlickEditを使用しており、他のメンバーはEmacs / viを使用しています。統合デバッガー、統合バージョン管理、統合ビルドシステムを使用していません。通常、統合が多すぎて本当の苦痛にはなりません。SlickEditは堅牢で(バグはほとんどありません)、高速で直感的です。まるでドイツの車、運転車のようなものです。

SlickEditの最新バージョンは私に興味のない多くの機能を提供しているようです、私は製品が将来膨れ上がって希釈されるのを少し心配しています。今のところ(私はV13.0を使用しています)それは素晴らしいです。



3

vimを長期間使用していた場合は、実際にそれをIDEとして作成する必要があります。利用可能なアドオンはたくさんあります。私はそれらのいくつかがかなり便利だと思って、ここでコンパイルしましたので、見てください。

そして、そこにあるvi / vimのヒントとコツのシリーズでもっとたくさん。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.