web-dev-qa-db-ja.com

Notepad ++内からC ++コードをコンパイル/実行する方法

私は http://daleswanson.blogspot.com/2012/07/how-to-compile-c-code-in-notepad-with.html を読んでいて、それを試すことにしました。 Notepad ++でコードを書き続けることができ、コンパイル/実行サイクルが短くなります。

コンパイル/実行コードをNppExecに入力しようとすると、機能しません。私が今持っているコードは:

npp_save
cd "$(C:\Users\Bart\Desktop\new delete me)"
g++ "$(test.cpp)" -o $(testme.exe) -march=native -O3
NPP_RUN $(testme.exe)

それは私が与えた最初のリンクに基づいていました:

npp_save
cd "$(CURRENT_DIRECTORY)"
g++ "$(FILE_NAME)" -o $(NAME_PART) -march=native -O3
NPP_RUN $(NAME_PART)

Notepad ++では、コンソールに次の情報が表示されます。

NPP_SAVE: C:\Users\Bart\Desktop\new delete me\test.cpp
CD: 
Current directory: C:\Program Files (x86)\Notepad++
g++ "" -o  -march=native -O3
CreateProcess() failed with error code 2:
The system cannot find the file specified.

NPP_RUN:
- empty command

他のページからは、そのコードを貼り付けるだけでよいかのように思われました。すべて大文字の単語は置き換えられるものではなく、変数です。だから私はこのコードを使用しました:

npp_save
cd "$(CURRENT_DIRECTORY)"
g++ "$(FILE_NAME)" -o $(NAME_PART) -march=native -O3
NPP_RUN $(NAME_PART)

Notepad ++コンソールで次のようになりました。

NPP_SAVE: C:\Users\Bart\Desktop\new delete me\test.cpp
CD: C:\Users\Bart\Desktop\new delete me
Current directory: C:\Users\Bart\Desktop\new delete me
g++ "test.cpp" -o test -march=native -O3
CreateProcess() failed with error code 2:
The system cannot find the file specified.

NPP_RUN: test
- the specified file was not found

設定を行うために私が行ったことは次のとおりです。

MinGW Installation Managerをインストールした http://sourceforge.net/projects/mingw/files/ からmingw-get-setup.exeをダウンロードしました。次に、これを使用してmingw32-gcc-++パッケージ、ならびにmingw32-libz.dllおよびmingw32-libz.devパッケージをインストールしました

Notepad ++では、プラグインマネージャを使用してNppExecプラグインをインストールしました。

最初にコマンドウィンドウで手動でコンパイルすることで、コードを実行できます。 Notepad ++はライブラリがないと不平を言うので、コンパイルするときに次のフラグを使用しています:g ++ test.cpp -static-libgcc -static-libstdc ++

Notepad ++でF5キーを押す(または[実行]メニューの[実行]をクリックする)と、コマンドラインコンパイルから作成されたa.exeファイルを選択でき、コマンドウィンドウをポップアップしてそのコードを実行するため、問題なく機能します。

しかし、コンパイル/実行を自動化しようとすると、NppExecでディレクトリ変更コマンドが何らかの理由で機能していないようです。

同様の問題に対処しているが、私には当てはまらないと思われる他のスタックオーバーフロー投稿があります。私はポイントがないので、それらのいずれにも返信できません。

まあ、私がリンクした最初の投稿には部分的な解決策があるようです-(投稿名にcファイルが含まれているにもかかわらず)Perlスクリプトのコンパイル方法を要約しているように見えました。 NppExecウィンドウに次のように表示するように言われました。

NPP_SAVE
CD $(CURRENT_DIRECTORY)
C:\MinGW32\bin\gcc.exe -g "$(FILE_NAME)"
a.exe

最後の行に "a"が付いているだけですが、これは "a.exe"と同じであり、このようにすると人間が読みやすくなります。そうは言っても、これは完全な解決策ではありません。これは、画面下部のNotepad ++の内部コンソールでファイルを実行するだけであり、Notepad ++のF5を使用してコンパイル済みプログラムをそのディレクトリから実行した場合と同様に、ウィンドウをポップアップします。

5
Bart Humphries

私はここから(私が少し編集した)動作するコードを持っています:
http://windowsbro.blogspot.hu/2012/10/compile-with-notepad-any-language.html

npp_save
g++ "$(FULL_CURRENT_PATH)" -o "$(CURRENT_DIRECTORY)\$(NAME_PART).exe"
npp_run $(CURRENT_DIRECTORY)\$(NAME_PART).exe

この形式では、ソースファイルの横にあるバイナリをコンパイルします。最後の行を次のように変更すると、

cmd /c "$(CURRENT_DIRECTORY)\$(NAME_PART).exe"

次に、プログラムはNppExecコンソールでcmd.exe

6
Just a Wannabe

bigNotepad ++のファンであり、C++の初心者でもあるので、説明を理解してそれに従うのに少し時間がかかりました。

ここに欠けている部分が1つあります。私と同じように、MinGWコンパイラの知識がまったくなく、最初からやり直しています。最初に設定することをお勧めします。

MinGWコンパイラが環境パスにない場合(または、そうしないほうがよい場合:ポータブルバージョン/ポリシーの制限)、これに従うことができます。


  1. インストール mingw-get-setup.exe

  2. コアパッケージを選択し、それらがすべて同じバージョンであることを確認してください。そうでない場合、コンパイル/実行時にstddef.hファイルが見つからないなどの奇妙なエラーが発生します。私はこれらをMinGW Installation Managerから選びました:

MinGW Installation Manager C++ components

  1. Notepad ++でスクリプトを作成します。
npp_save
VCD C:\MinGW\bin\
g++ "$(FULL_CURRENT_PATH)" -o 
"$(CURRENT_DIRECTORY)\$(NAME_PART).exe"
cmd /c "$(CURRENT_DIRECTORY)\$(NAME_PART).exe"
  1. Notepad ++内でプログラムをコンパイルして実行します。 Execute C++ code in Notepad++

  2. 直接実行ボタンまたはショートカットF5をnppexec>詳細オプションから追加できます。実行ボタンはツールバーの端にある小さなボタンです: Adding Execute button and keyboard shortcut

別の方法として、コンパイル済みのプログラムを任意の場所から実行する場合は、環境パスにMinGWを追加できます。適切な説明は website にあります。このようにして、MinGWディレクトリでのポイントをスキップできます。

cd C:\MinGW\bin\
1
Gunay Anach

A.exeをNotepad ++コンソールではなく独自のウィンドウで開始する方法に関する最後の質問について:最後の行a.exeを次のようなものに置き換えてみてください。

NPP_RUN cmd /k a

npp_runはnpp_execのコマンドです。ここでコマンド「cmd/k a」を開始し、cmd/kは「/ k」に続くコマンドを実行し、a.exeが終了した後もウィンドウを開いたままにします。

0
Lars Fischer