VS Code搭配code runnner编译时提示:g++: fatal error: no input files解决方法

如下图所示,如果我们使用的是windows系统,当我们编写好C++文件之后,执行run code命令,就会出现的下面的错误提示:
g++: error: testCodeRunnner.cpp: No such file or directory
g++: fatal error: no input files
compilation terminated.
在这里插入图片描述
仔细分行上面的运行命令:
cd “d:\temp” && g++ testCodeRunnner.cpp -o testCodeRunnner && "d:\temp"testCodeRunnner
实际上,这行命令包含三个步骤:
(1)进入到cpp文件所在的目录:cd “d:\temp”
(2)在文件所在目录将文件编译成可以执行文件: g++ testCodeRunnner.cpp -o testCodeRunnner
(3)运行编译之后的可执行文件,d:\temp"testCodeRunnner

出现错误的原在于第一个步骤,通过上面的图可以看到,由于我们当前所在的目录是c盘下面,但是我们的文件在d:\temp, windows系统中不能直接cd到另外一个盘。也就是说,第一个命令cd “d:\temp” 是不能从c盘切换到D盘的。如果我们需要从一个盘切换到另外一个盘,需要在cd命令前加上 /d 字段,完整命令格式为: cd /d 绝对路径。比如上述命令就需要变成:cd /d “d:\temp”

找到问题的原因之后,就能解决这个问题了
(1)第一种方法就是,手动切换到文件所在的盘之后,然后再执行run code命令。上面提到命令失败的主要原因是,cd 命令不能跨盘切换,因此可以先将当前目录切换到d盘,直接输入 d: 然后回车就可以切换到d盘了
(2)另外一种就在run code命令中加上 /d 字段,防止从一个盘切换到另外一个盘时失败。
进入到Code Runner的设置 - > extension settings
在这里插入图片描述
然后修改json配置文件:
在这里插入图片描述
从配置文件中可以看看到,json中为不同的语言·都配置不同的命令,以 C++为例:
在这里插入图片描述
可以看到c++的执行命令是下面这一行:
cd $dir && g++ $fileName -o $fileNameWithoutExt && d i r dir dirfileNameWithoutExt
由于cd $dir 这个命名在需要切换的不同的盘时失效,我们自己加上/d字段就好了:
cd /d $dir && g++ $fileName -o $fileNameWithoutExt && d i r dir dirfileNameWithoutExt

效果如下:
在这里插入图片描述

可以看到,尽管我们执行run code的命令时,我们还在在c盘目录,c++文件位于d盘中,但是命令还是执行成功了,并且我们可以发现,命令之后之后,当前目录已经切换到我们c++文件所在的目录了。
至此,问题解决了~

  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
BL51 BANKED LINKER/LOCATER V6.22 10/13/2017 23:08:20 PAGE 1 BL51 BANKED LINKER/LOCATER V6.22, INVOKED BY: D:\51PROGRAM FILES\C51\BIN\BL51.EXE STARTUP.obj, chuankou.obj TO chuankou RAMSIZE (256) MEMORY MODEL: SMALL INPUT MODULES INCLUDED: STARTUP.obj (?C_STARTUP) chuankou.obj (CHUANKOU) LINK MAP OF MODULE: chuankou (?C_STARTUP) TYPE BASE LENGTH RELOCATION SEGMENT NAME ----------------------------------------------------- * * * * * * * D A T A M E M O R Y * * * * * * * REG 0000H 0008H ABSOLUTE "REG BANK 0" DATA 0008H 0003H UNIT ?DT?CHUANKOU IDATA 000BH 0001H UNIT ?STACK * * * * * * * C O D E M E M O R Y * * * * * * * CODE 0000H 0003H ABSOLUTE CODE 0003H 000CH UNIT ?C_C51STARTUP CODE 000FH 000CH UNIT ?PR?SER?CHUANKOU CODE 001BH 0007H UNIT ?CO?CHUANKOU 0022H 0001H *** GAP *** CODE 0023H 0003H ABSOLUTE CODE 0026H 0041H UNIT ?PR?MAIN?CHUANKOU OVERLAY MAP OF MODULE: chuankou (?C_STARTUP) SEGMENT +--> CALLED SEGMENT --------------------- ?C_C51STARTUP +--> ?PR?MAIN?CHUANKOU ?PR?MAIN?CHUANKOU +--> ?CO?CHUANKOU SYMBOL TABLE OF MODULE: chuankou (?C_STARTUP) VALUE TYPE NAME ---------------------------------- ------- MODULE ?C_STARTUP C:0003H SEGMENT ?C_C51STARTUP I:000BH SEGMENT ?STACK C:0000H PUBLIC ?C_STARTUP D:00E0H SYMBOL ACC BL51 BANKED LINKER/LOCATER V6.22 10/13/2017 23:08:20 PAGE 2 D:00F0H SYMBOL B D:0083H SYMBOL DPH D:0082H SYMBOL DPL N:0000H SYMBOL IBPSTACK N:0100H SYMBOL IBPSTACKTOP N:0080H SYMBOL IDATALEN C:0006H SYMBOL IDATALOOP N:0000H SYMBOL PBPSTACK N:0100H SYMBOL PBPSTACKTOP N:0000H SYMBOL PDATALEN N:0000H SYMBOL PDATASTART N:0000H SYMBOL PPAGE N:0000H SYMBOL PPAGEENABLE D:00A0H SYMBOL PPAGE_SFR D:0081H SYMBOL SP C:0003H SYMBOL STARTUP1 N:0000H SYMBOL XBPSTACK N:0000H SYMBOL XBPSTACKTOP N:0000H SYMBOL XDATALEN N:0000H SYMBOL XDATASTART C:0000H LINE# 126 C:0003H LINE# 133 C:0005H LINE# 134 C:0006H LINE# 135 C:0007H LINE# 136 C:0009H LINE# 185 C:000CH LINE# 196 ------- ENDMOD ?C_STARTUP ------- MODULE CHUANKOU C:0000H SYMBOL _ICE_DUMMY_ D:0080H PUBLIC P0 D:0090H PUBLIC P1 D:00B0H PUBLIC P3 B:00A8H.7 PUBLIC EA C:001BH PUBLIC table D:00A8H PUBLIC IE B:00A8H.4 PUBLIC ES D:00B8H PUBLIC IP B:0098H.0 PUBLIC RI D:0008H PUBLIC flag B:0098H.1 PUBLIC TI C:0026H PUBLIC main D:0099H PUBLIC SBUF D:0098H PUBLIC SCON D:0089H PUBLIC TMOD D:0088H PUBLIC TCON C:000FH PUBLIC ser D:008DH PUBLIC TH1 B:0098H.7 PUBLIC SM0 B:0098H.6 PUBLIC SM1 D:008BH PUBLIC TL1 B:0088H.6 PUBLIC TR1 D:0009H PUBLIC a B:0098H.4 PUBLIC REN D:00C8H PUBLIC T2CON D:000AH PUBLIC i BL51 BANKED LINKER/LOCATER V6.22 10/13/2017 23:08:20 PAGE 3 D:00D0H PUBLIC PSW ------- PROC MAIN C:0026H LINE# 6 C:0026H LINE# 7 C:0026H LINE# 8 C:0029H LINE# 9 C:002CH LINE# 10 C:002FH LINE# 11 C:0031H LINE# 12 C:0033H LINE# 13 C:0035H LINE# 14 C:0037H LINE# 15 C:0039H LINE# 16 C:003BH LINE# 17 C:003BH LINE# 18 C:003BH LINE# 19 C:0040H LINE# 20 C:0040H LINE# 21 C:0042H LINE# 22 C:0045H LINE# 23 C:0047H LINE# 24 C:0047H LINE# 25 C:004FH LINE# 26 C:0052H LINE# 27 C:0054H LINE# 28 C:005BH LINE# 29 C:005EH LINE# 30 C:0061H LINE# 31 C:0063H LINE# 32 C:0065H LINE# 33 C:0065H LINE# 34 ------- ENDPROC MAIN ------- PROC SER C:000FH LINE# 36 C:000FH LINE# 38 C:0011H LINE# 39 C:0014H LINE# 40 C:0017H LINE# 41 C:001AH LINE# 42 ------- ENDPROC SER ------- ENDMOD CHUANKOU Program Size: data=12.0 xdata=0 code=102 LINK/LOCATE RUN COMPLETE. 0 WARNING(S), 0 ERROR(S)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值