• 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++文件所在的目录了。
    至此,问题解决了~

  • 相关阅读:
    Vue如何实现单选、全选、反选
    Java并行计算介绍
    高性能系统的性能优化技巧:从专家的经验中学习 | 开源日报 No.40
    数学建模黄河水沙监测数据分析
    Nanoframework 操作单片机蓝牙配置WIFI的案例
    学习日记(XML 文件解析、检索、工厂设计模式、装饰设计模式)
    通讯网关软件012——利用CommGate X2OPC实现MS SQL数据写入OPC Server
    Linux系统下进程的概念《一》
    JavaWeb实现登录注册功能[代码+详解]
    使用Caffeine实现帖子的缓存来优化网站的运行速度
  • 原文地址:https://blog.csdn.net/weixin_43354152/article/details/126371084