2016-07-06 3 views
0

TL; DR:新しいものを作成する前に、実行中のバージョンのコードを強制終了するにはどうすればよいですか?新しいものを構築するときに以前の繰り返しを終了します

私はC++用のCLionで遊び始めました。私はしばしば、最後の繰り返しをやめてから、再度コンパイルしようとするのを忘れてしまい、「Permission denied」エラーに繋がります。最初にこれに遭遇したとき、パーミッションの設定で約30分かかってしまいました。古いバージョンはまだ実行されていたため、新しい実行可能ファイルに置き換えることができなかったためです。

私が知る限り、バッチ(私はWindowsだからです)スクリプトを埋め込まずにCMakeでこれを行う方法はありません。私はそれを避けたいと思います。なぜなら、それほど複雑ではないでしょう...それほど報酬ではありません。

要するに、新しいものを実行しているときに以前の繰り返しを止めるCLionやCMakeのオプションがありますか?

答えて

2

はいあります。 ctrl + F2またはgoto Run > Stopを押すだけで、前の反復が終了した場合に終了します。

また、1つのインスタンスのみを実行するように設定することもできます。このようにして、前のインスタンスは新しいインスタンスを実行する前に必ず終了します。これを有効にするには、Run | Edit Configurationsに行き、Single Instance Onlyを選択します。

+0

答えの最後の半分が実際に私の質問に答えます。これは、別のインスタンスを開始する前に前のインスタンスを自動的に終了する方法でした。ありがとう! –

+0

@QPaysTaxesこれは素晴らしいことです。私はまだ解答の最初の部分を残しています。誰かが_手動で終了させたい場合に備えて(デバッガを止めずにコンソールを閉じたときにプロセスがちょうど死ぬことはありません。 –

0

私が知る限り、これはデフォルトでは不可能です。私が発見した 一つの解決策は、次の内容のバッチファイルを作成することでした。

@echo on 
tasklist /FI "IMAGENAME eq %1" 2>NUL |find /I "%1">NUL 
if "%ERRORLEVEL%"=="0" taskkill /F /im %1 

(プロセスが実行されているかどうかセカンドラインをチェック - ここで見つける:How to check if a process is running via a batch script

をまた作るためにビルド構成を編集CLionはバッチファイルを呼び出し、すべてのビルドの前にプロセス名を渡します。

これは、それがどのように動作するかです:

  1. ファイル名を指定して実行>編集設定>「発売前:外部...」で
  2. (私の場合には、「すべてを構築」)に変更する構成を選択します - 「プログラム:」フィールドを緑色のプラス
  3. は、「ファイル名を指定して実行外部ツール」を選択して、バッチファイル内のパスを追加ツール
  4. の名前を選択します
  5. 緑色のプラスポップアップウィンドウでをクリックしてセクションをクリックします
  6. 012 「パラメータ:」に
  7. 書き込み$ProjectName$.exe OKフィールド
  8. クリックして、あなたは
  9. バック設定ウィンドウ内になるまで、それは今まで

必要があり、それを選択し、矢印をクリックしてスクリプトを十分に優先順位を付けますすべてのビルドの前に実行中のプロセスを強制終了してください。

関連する問題