C ++ 11构建系统工作,但不运行可执行文件

时间:2016-10-24 15:24:44

标签: c++ c++11 sublimetext3 c++14

我尝试使用C ++ 11 Build System成功构建Sublime Text 3后运行可执行文件,但收到错误:

[WinError 2]系统无法找到指定的文件[cmd:[' bash',' -c'," g ++ -std = c ++ 0x& #39; C:\用户\ FTP-RSky \桌面\ RSky \ RECT \ test_g ++ 11.cpp' -o' C:\ Users \ FTP-RSky \ Desktop \ RSky \ rect / test_g ++ 11' &安培;&安培; xterm -e bash -c' C:\ Users \ FTP-RSky \ Desktop \ RSky \ rect / test_g ++ 11;读'"]] [dir:C:\ Users \ FTP-RSky \ Desktop \ RSky \ rect] [路径:C:\ Program Files \ Processing-3.2.1; C:\ WINDOWS \ system32; C:\ WINDOWS; C:\ WINDOWS \ System32 \ Wbem; C:\ WINDOWS \ System32 \ WindowsPowerShell \ v1.0 \; C:\ Program Files(x86)\ Skype \ Phone \; C:\ Program Files \ dotnet \; C:\ Program Files \ Microsoft SQL Server \ 130 \ Tools \ Binn \; C:\ Program Files(x86)\ Microsoft SQL Server \ 110 \ DTS \ Binn \; C:\ Program Files(x86)\ Microsoft SQL Server \ 120 \ DTS \ Binn \; C:\ Program Files(x86)\ Microsoft SQL Server \ 130 \ DTS \ Binn \; C:\ Program Files(x86)\ Windows Kits \ 8.1 \ Windows Performance Toolkit \; C:\ Program Files(x86)\ CodeBlocks \ MinGW \ bin; C:\ Program Files \ Java \ jdk1.8.0_73 \ bin \ lib ; C:\ Program Files \ Java \ jdk1.8.0_73 \ bin] [结束]

所以我在Sublime Text 3中有三个构建系统:

1。 C ++ Build and Run完美无缺!!!

2。 C ++ 11 Build但不是Run。我的C ++ 11.sublime-build文件:

  {

 "cmd": ["g++", "-std=c++11", "${file}", "-o", "${file_path}/${file_base_name}"],

 "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",

 "working_dir": "${file_path}",

 "selector": "source.c, source.c++",

 "variants":

 [
   {
     "name": "Run",
     "cmd":["bash", "-c", "g++ '${file}' -std=c++11 -stdlib=libc++ -o '${file_path}/${file_base_name}' && '${file_path}/${file_base_name}'"]
   }

 ]
}

第3。 C ++ 14不构建&跑。 [WinError 2]系统找不到指定的文件[cmd:my C ++ 14.sublime-build file:

   {

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

 "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",

 "working_dir": "${file_path}",

 "selector": "source.c, source.c++",

 "variants":

 [
   {
     "name": "Run",

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

有一种方法可以构建和运行现代C ++ 11& Sublime Text 3中的14个版本作为常规C ++输出没有问题? 或者我错过了什么?

1 个答案:

答案 0 :(得分:0)

在Windows上的Ubuntu上使用Bash时,您必须使用POSIX路径而不是Windows路径。例如,Windows路径c:\Users\me\Desktop\My Project\source.cpp转换为POSIX路径/mnt/c/users/me/Desktop/My Project/source.cpp

除非您想在.sublime-build文件中对这些路径进行硬编码,否则您可能必须创建一个处理此问题的脚本(例如Batch)并在构建文件中调用该脚本。这个example script是一个很好的起点。