12

C++用にSublimeText2を構成することができ、コードをコンパイルできるようになりました(MinGWコンパイラーを使用)。

残念ながら、SublimeTextコンソールはC++のいかなる種類の入力もサポートできません。

コンパイルしたプログラムを外部コンソール(たとえば、Windowのターミナル)で開きたい。「call」または「cmd」を使用しようとしましたが、機能しませんでした。(それでもコンソールでファイルを開きます)

これが私のビルド構成です:

{
"cmd": ["C:\\MinGW\\bin\\mingw32-g++.exe", "-Wall", "-time", "$file", "-o", "$file_base_name"],
"cmd": ["call", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"working_dir": "${project_path:${folder}}",
"selector": "source.c",
"shell": true,
"encoding": "latin1"
}
4

6 に答える 6

15

これで試してください:

{
    "cmd": ["C:\\Dev-Cpp\\bin\\mingw32-g++.exe", "-static", "-Wall", "-time", "$file", "-o", "$file_base_name.exe", "&&", "start", "$file_base_name"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "working_dir": "${project_path:${folder}}",
    "selector": "source.c",
    "shell": true,
    "encoding": "latin1"
}

秘訣は、「start」コマンドを使用して生成されたファイルを実行することです。これにより、ファイルが新しいcmdウィンドウで強制的に開かれ、すべてが最初のcmd定義内に配置されます(2つのコマンドを実行するために&&を使用)。複数のcmd配列を定義すると、それらは上書きされます。

于 2012-08-24T02:02:03.020 に答える
13

@FacundoJ:Macでは、ターミナルを使用してアプリを外部で実行できます。C ++。sublime-buildで、コンパイルされた出力を実行するだけでなく、ターミナルで起動するようにcmdを変更します。

から変更する:

"cmd": ["bash", "-c", "g++ '${file}' -o '${file_path}/${file_base_name}' && '${file_path}/${file_base_name}'"]

に:

"cmd": ["bash", "-c", "g++ '${file}' -o '${file_path}/${file_base_name}' && open -a Terminal.app '${file_path}/${file_base_name}'"]
于 2013-09-01T20:53:57.403 に答える
3

@FacundoJからの受け入れられた回答では、実行するたびにプログラムをコンパイルします。これは必ずしも必要ではありません(つまり、外部リソースを変更したり、メイン引数を操作したりする場合)。その場合、私はこの設定をお勧めします:

{
  "cmd": ["g++", "$file", "-o", "$file_base_name.exe"],
  "working_dir": "${project_path:$folder}",
  "selector": "source.cpp",
  "shell": true,
  "variants": [{
    "name": "Run",
    "cmd": ["start", "", "$file_base_name"]
  }]
}

(PATHにC:\ MinGW \ binがあると仮定して)次のように使用できます

  • Ctrl+Bプログラムをコンパイルします

  • Ctrl+ Shift+B実行します(もちろん、コンパイル後)

注1startコマンド後の空の文字列に注意してください。使用する必要があります

注2サフィックスを使用する必要があります。そうでない場合.cpp、デフォルトでC89構文が使用されます(少なくともMinGW g ++コンパイラでは)

于 2014-10-22T01:26:26.867 に答える
3

受け入れられた回答により、Windows CMDでプログラムを実行し、入力を受け入れることができます。ただし、プログラムの実行が終了すると、出力がはっきりと表示される直前にcmdウィンドウが閉じられます

次の解決策を試してみてください。プログラムの実行後もCMDウィンドウを開いたままにして、結果を確認できるようにします

{
    "shell_cmd": "g++ -Wall -std=c++11 \"${file}\" -o \"${file_path}/${file_base_name}.exe\"",
    "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
    "working_dir": "${file_path}",
    "selector": "source.c, source.c++",

    "variants":
    [   // run in the sublime text console
        {
            "name": "Run",
            "shell_cmd":"\"${file_path}/${file_base_name}\""
        },
        // run in the Windows cmd
        {
            "name": "Run in cmd",
             // the following two settings are all valid, choose one you prefer
            "shell_cmd":   "start cmd /k  $file_base_name "
            // "shell_cmd":   "start \"$file_base_name\" call $file_base_name"
        }
    ]
}

最初にCtrl+を押しBてプログラムをコンパイルし、次にCtrl+ Shift+を押してオプションBを選択しrun in cmdます。これにより、SublimeTextコンソールではなくシステムCMDでプログラムが実行されます。

上記の設定はWindows8.1でテストされており、そのままWindows7およびWindows10でも機能するはずです。

于 2017-09-02T07:23:18.583 に答える
1

Ubuntuの場合

{
"cmd": ["g++ ${file} && xterm -hold -e ./a.out"], 
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "${file_path}",
"selector": "source.c++",
"shell": true,
}

このビルドシステムが行うことは、.cppファイルをコンパイルし、xtermで出力ファイルを開くことです。

->出力をgnome-terminalで開きたい場合は、プロファイルを作成します

gnome-terminalで、[編集]->[プロファイル設定]->[コマンド]タブをクリックします。[コマンドが終了したとき]というラベルの付いたドロップダウンメニューから[ターミナルを開いたままにする]を選択します。そのための新しいプロファイルを作成する必要があります。

次に、「cmd」を次のように置き換えます

 "cmd": ["g++ ${file} && gnome-terminal --window-with-profile=PROFILENAME -e ./a.out"]
于 2016-02-06T18:29:55.347 に答える
0

これは動作しています!!

{"cmd": ["g++", "-Wall", "-ansi", "-pedantic-errors", "$file_name", "-o", 
"${file_base_name}.exe", "&&", "start", "cmd", "/k" , "$file_base_name"],
"selector": "source.cpp",
"working_dir": "${file_path}",
"shell": true}
  • [ツール]>[ビルドシステム]>[新しいビルドシステム..."C++。sublime-build"...]に移動し、すべてのファイルとして保存する必要があります
  • そのビルドを選択します

(ctrl + b)と入力するだけで、管理者特権のコマンドプロンプトが開き、他のIDEと同じように入力を入力できます。

于 2017-10-10T18:06:11.767 に答える