タグ付けされた質問 「compilation」

9
Emacsをフル機能のC / C ++ IDEとして使用する
EmacsをC / C ++ IDEとして使用するために、1年以上試行錯誤を繰り返してきました。私はこれまでわずかな成功しか収めていませんでしたが、途中でいくつかのレンガの壁にぶつかりました。現在、CEDETを使用しようとしていますが、CEDETを効果的に使用する方法を理解するのに苦労しています。 IDEで探している機能は次のとおりです。 ソフトウェア「プロジェクト」の管理。プロジェクト内で検索と置換などの機能を実行できるように、IDEに現在のプロジェクトを構成するすべてのファイルの意味を持たせたい。(ソースツリーに多数のサポートファイルを散らかさずにこれを実現できればいいと思います。プロジェクトごとに複数の集中プロジェクトファイルが必要なのはなぜですか?) 現在アクセスしているバッファに関係なく、IDE内から現在のプロジェクトをビルドする機能。現在のプロジェクトをビルドするキーをバインドできる必要があります。 エラー報告。ビルドツールによって報告されたエラーを見つけるために、500行以上の出力を読む必要はありません。エラーは、エラーごとに1行で、独自のバッファーに表示されることが望ましいです。 プロジェクト内のシンボルの認識、およびそれらが定義されている場所。プロジェクトファイルにあるか、システムインクルードファイルにあるかに関係なく、シンボル定義にジャンプしたい。 視覚的なデバッグ。コードをステップ実行すると自動的に更新されるローカル変数のウォッチリストが必要です。コードにブレークポイントを設定して、次に実行されるコード行を確認できるようにします。 これらの各機能は、EDE、Semantic、GDBなどを使用して一度にまたはもう1つ動作させたために存在することを知っています。問題は、これらの機能のすべてを同時に動作させることができなかったことですなぜなら、通常、各ピースはそれ自体で構成する必要があり、通常、それらすべてを一度に構成し、それらを連携させる方法を理解するのは大変な作業です。 Emacsをフル機能のC / C ++ IDEに変えるためのソリューションは何ですか? 常にすべてを個別に設定する必要がありますか、それともすべての機能を一度に設定する方法がありますか? 編集:この質問に対する良い答えは、与えられた5つの基準をすべて正確に満たす必要はありません。IDEを「フル機能」と見なす前に、表示したい機能の種類のより具体的なアイデアを示すために、リストを提供しました。CEDETがこの法案に適合する可能性は十分にありますが、ゼロからセットアップする方法に関する段階的なチュートリアルをまだ見つけていません。


3
*コンパイル*ウィンドウで現在のエラーを強調する
コンパイルコマンドを実行して「次のエラー」にジャンプするとき、emacsは* compilation *バッファーの左側の縁に右向きの小さな黒い三角形を配置することにより、現在のエラーの行を識別します。これはいいですが、私の古い目はより大胆な指標を望んでいます。ここでの基本的な目標は、emacsが現在のコンパイラエラーとして識別している行を視覚的にすばやく識別できるようにすることです。頭に浮かぶいくつかの解決策: 現在のエラーの別の面(たとえば、より大きい)。 現在のエラーの別の背景色(hl-line-modeなど)。 より大きな三角形。 しかし、私は他のアイデアにもオープンです。 誰かが私を助けてくれますか?

2
無視できる変数を宣言するにはどうすればよいですか?
にUnused lexical variable展開されるマクロを使用して定義された関数でバイトコンパイラの警告を回避するにはどうすればよいdefunですか? たとえば、マクロdefun-rcirc-commandin rcirc.el は、targetいくつかの呼び出しで使用されていない変数を使用します。 Common Lispでは、次のignorable 宣言を使用できます (declare (ignorable target))。 悪い解決策: を使用しない(setq target target)すべてのユーザーに、多くのマクロ呼び出しを変更する必要があるようなものを 追加します。defun-rcirc-commandtarget アンダースコアで無視変数を接頭辞- _target-理由は助けない_手段ignoreではなく、ignorableつまりは、それが使用されるとき、私が得ますvariable '_target' not left unused。


1
コンパイル時の最初のエラーへのジャンプ-警告ではない-
このcompilation-auto-jump-to-first-errorオプションにより、Emacsはコンパイル中に最初のエラーにジャンプするはずです。しかし、Emacsは警告とエラーを同じように扱い、どちらかの最初のものにジャンプするようです。Emacsに最初のエラーがある場合はどのようにしてジャンプしますか、そうでない場合は最初の警告にジャンプさせますか?最初にエラーを修正し、次に警告を修正します(特に、サードパーティのライブラリによって警告が発生する可能性があるため)。

3
Mxコンパイルの永続的な環境
実行M-x compileすると、新しいサブシェルが生成され、コンパイルコマンドが実行されます。コンパイルコマンドが戻るとすぐに、シェルプロセスは強制終了されます。これがほとんどの場合に望ましい理由はわかりますが、現在は役に立たない状況にあります。 現在、専用のビルド環境で作業しています。コンパイラーを実行する前に、ビルドをセットアップするためにいくつかの初期手順を実行する必要があります。環境が持続する限り、セットアップ手順を1回だけ実行する必要があります。しかし、それを使用M-x compileすると、コンパイルまたは再コンパイルするたびに手順を実行する必要があることを意味します。 バックグラウンドで持続するサブシェルを生成する方法はありますか?一つM-x compileとM-x gdb彼らはシェルプロセスを実行する必要があるたびに使用することができますか? 動機: xcc特別なプラットフォーム用のCコードをビルドするプログラム(これをと呼びます)があります。コードをビルドするには、まずプロンプトxccから始めtcshます。 $ xcc プログラムの読み込みに10秒以上かかり、インタラクティブプロンプトでコマンドを入力できます xcc>> add target myprogram xcc>> set source myprogram $PROJDIR/src/ xcc>> set includes myprogram $PROJDIR/include/ xcc>> set type myprogram primitive xcc>> set inputs myprogram int8,int8 xcc>> set outputs myprogram fix16,fix16 xcc>> build myprogram 上記の手順はカスタムマクロに組み込むことができるbuildmyprog.macroので、シェルから直接、またはemacsから実行できます。M-x compile $ xcc buildmyprog.macro このアプローチの主な問題は、xccコンパイルが始まるまでにプログラムのロードに10秒かかることです。私はすべての時間、私は私が実行し始めていることをコンパイルし、余分な10秒待っているの疲れ十分に得xccにansi-term別のバッファでは。コードを変更して保存した後、ansi-termバッファに切り替えて実行します …

2
コンパイルコマンドをカスタマイズするにはどうすればよいですか?
私のプロジェクトの1つではmake package install、ビルド時にの代わりに実行する必要がありmakeます。最後に使用したコンパイルコマンドは記憶されていますがmake -k、emacsが起動するたびにリセットされます。M-x compileデフォルトにカスタマイズするにはどうすればよいmake package installですか?

2
* compilation *バッファーを固定して、単一のフレーム/ウィンドウを残さないようにするにはどうすればよいですか?
*compilation*バッファを常に独自のフレームに留めておきたいと思います。ただし、現在M-x compile、別のフレーム/ウィンドウから実行すると、バッファもそこの新しいウィンドウにポップアップします。*compilation*バッファを表示している既存のフレームのみをemacsに代わりに発生させるにはどうすればよいですか?

1
Vimのクイックフィックスに最も近いEmacs機能は何ですか?
Vimのクイックフィックスの一般的な用途は、コードのコンパイルを、示唆された名前のmakeprg変数で指定されたコマンドに渡し、そのコマンドによって出力されたエラーを解釈して、各エラーのファイル、行、および列の場所にすばやくジャンプできるようにすることです。 Vimのクイックフィックスは破壊されて他の方法で使用される可能性がありますが、私の質問は上記の動作を再現する方法にのみ関係しています。 Vimのクイックフィックスに最も近いEmacs機能は何ですか?

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