在VS代码上运行C程序时出现“参数过多”错误

wpcxdonn  于 2022-12-03  发布在  其他
关注(0)|答案(5)|浏览(313)

下面是我要运行的程序:

#include <stdio.h>

int main(){
    printf("Helloworld!");
    return 0;
}

下面是我得到的错误:

我真的不知道为什么会发生这种情况。一个月前它还工作得很好。每当我在VSCode上运行并单击“开始调试”时,我得到的是:

请帮帮忙。

u91tlkcl

u91tlkcl1#

问题出在控制台命令行,而不是c代码。正如@molbdnilo所建议的,反斜杠是bash中的转义字符。特别是,文件路径中的最后一个反斜杠转义了引号字符,这意味着cd命令没有终止。在bash中,你也可以使用正斜杠来分隔路径中的元素,以避免这个问题。

ffscu2ro

ffscu2ro2#

如Ezward所述,问题出在bash命令上。假设您的桌面上有一个名为“a.cpp”的文件。在同一目录下打开终端,即桌面,然后尝试以下命令:

g++ -o objectFileName sourceFileName

例如,在本例中,请用途:

g++ -o a a.cpp

此命令将为您的a.cpp文件生成一个名为“a”的对象/可执行文件。现在要运行该文件,请输入以下命令:

./objectFileName

在这种情况下,将是:

./a

这将运行您的代码,您将看到它的输出。
注意:我假设你在linux/ubuntu中使用的是基于g的编译器。如果不是,请在谷歌上搜索一下如何安装g编译器。我希望这个链接对你有所帮助:
https://askubuntu.com/questions/481807/how-to-install-g-in-ubuntu-14-04

aiazj4mn

aiazj4mn3#

如前所述,问题出在命令行,而不是代码。
然而,问题并不出在g++或&&(这是好的,也不是坏的,因为它在出现错误时停止),而是出在目录末尾的反斜杠上。与Windows中的cmd不同,bash将\"解释为文字",而不是反斜杠后面跟着字符串分隔符。
这意味着cd获得 * 两个 * 参数

C:\Users\...\Desktop" && gcc hello.c -o hello &&

C:\Users\...\Desktop"hello
aemubtdh

aemubtdh4#

将默认配置文件(Shell)设置为CMD可解决此问题。〉_〈

hpcdzsge

hpcdzsge5#

只需将终端更改为Windows PowerShell
1.按CTRL+SHIFT+P组合键
1.搜索“终端:选择默认配置文件”(以前的“终端:选择默认 shell ”)
1.选择您的首选shell。在我的示例中,我选择了“Windows PowerShell”

相关问题