现在我知道这个问题之前已经被问过好几次了,但是我能找到的这个问题的所有实例都与 python 有关。然而,即使当我尝试运行 C++ 程序时,这个问题也会影响我。 今天早些时候,我重新整理了一些文件(包括那些有 sublime 文本的文件)。 我的崇高文字开始起作用,菜单完全消失了。 我重新安装了它,看起来不错,但每当我尝试运行 cpp (或任何其他)文件时,它都会出现错误
[WinError 2] The system cannot find the file specified
[shell_cmd: g++ "C:\Users\user\Desktop\INOI22\dynamic programming\lis.cpp" -o "C:\Users\user\Desktop\INOI22\dynamic programming/lis"]
[dir: C:\Users\user\Desktop\INOI22\dynamic programming]
[path: C:\Windows\System32; C:\Windows; C:\Users\user\Desktop\Appdata\Local;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Users\user\Desktop\MinGW\bin;c:\users\user\desktop\inoi22\mingw\bin; c:\windows\system32; c:\windows; c:\users\user\appdata\local]
[Finished]
此后我已尝试重新安装两次,每次都出现相同的错误。
我还尝试弄乱我的环境变量,我认为这可能是导致此问题的原因。
目前我的
%PATH%
变量设置为
C:\Windows\System32; C:\Windows;
C:\Users\user\Desktop\Appdata\Local;C:\Windows\system32;
C:\Windows;
C:\Windows\System32\Wbem;
C:\Windows\System32\WindowsPowerShell\v1.0\;
C:\Users\user\Desktop\MinGW\bin
您似乎正在使用 Sublime Text 附带的
C++ Single File
构建系统:
{
"shell_cmd": "g++ \"${file}\" -o \"${file_path}/${file_base_name}\"",
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "${file_path}",
"selector": "source.c++",
"variants":
[
{
"name": "Run",
"shell_cmd": "g++ \"${file}\" -o \"${file_path}/${file_base_name}\" && \"${file_path}/${file_base_name}\""
}
]
}
不幸的是,它以 Unix/Linux 为中心,因为生成的可执行文件仅由文件名的第一部分命名。因此,如果您正在编译
test.cpp
,可执行文件将被称为 test
,没有扩展名。然而,在 Windows 上,可执行文件需要具有 .exe
扩展名(一般来说,也有例外)才能正常运行。我们将通过修改构建系统来解决这个问题。
在 Sublime 中,一直选择底部的
Tools → Build System → New Build System…
。将出现如下所示的模板:
{
"shell_cmd": "make"
}
删除所有这些,然后添加以下内容:
{
"shell_cmd": "g++ \"${file}\" -o \"${file_path}/${file_base_name}.exe\"",
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "${file_path}",
"selector": "source.c++",
"variants":
[
{
"name": "Run",
"shell_cmd": "g++ \"${file}\" -o \"${file_path}/${file_base_name}.exe\" && \"${file_path}/${file_base_name}.exe\""
}
]
}
您会注意到我用
\"${file_path}/${file_base_name}\"
替换了 \"${file_path}/${file_base_name}.exe\"
部分。最后要做的事情是保存新的构建系统。按 CtrlS(或 File → Save
),保存对话框应自动位于您的 Packages/User
文件夹中,其中 Packages
是选择 Preferences → Browse Packages…
时打开的文件夹。在 Windows 上,可以是
C:\Users\YourUserName\AppData\Roaming\Sublime Text 3\Packages
或 C:\Users\YourUserName\AppData\Roaming\Sublime Text\Packages
InstallationFolder\Sublime Text 3\Data\Packages
InstallationFolder\Sublime Text\Data\Packages
确切的路径取决于版本以及您是否从 Sublime Text 3 升级。将文件命名为
C++ Single File (Windows).sublime-build
。它现在应该显示在构建系统选择菜单和命令面板中。
现在,您应该能够正确编译(假设代码正确)并运行可执行文件而不会出现问题。请记住,Sublime 不支持常规构建系统的交互式用户输入(C 中的
scanf
,C++ 中的 cin
),因此您需要 使用不同的自定义构建系统或使用 Terminus
(推荐的解决方案)。
1.首先我检查了我的file.cpp、inputf.in和outputf.out是否在同一个文件夹中。 2.然后,我通过转到“首选项”>“浏览包”>“buildsysfile.sublime-build”检查了构建系统文件,我注意到在文件中我指定了“outputf.in”来查看输出,但我打开了“outputf.out”,所以我指定了输出并保存。
这对我有用。
如果您使用 McAfee 或任何其他软件等防病毒软件,您也可能会遇到此问题。尝试禁用实时扫描,然后运行您的代码。
另外,我正在使用以下构建文件 c++
{
"shell_cmd": "g++ \"${file}\" -o \"${file_path}/${file_base_name}.exe\"",
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "${file_path}",
"selector": "source.c++",
"variants":
[
{
"name": "Run",
"shell_cmd": "g++ \"${file}\" -o \"${file_path}/${file_base_name}.exe\" && \"${file_path}/${file_base_name}.exe\""
}
]
}