鱼C论坛

 找回密码
 立即注册
查看: 370|回复: 3

[已解决]vscode怎么一下编译多个源文件

[复制链接]
发表于 2025-9-15 22:21:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
看的小甲鱼的视频,用的vscode+c/C++插件+coderuner
写出来的代码以要运行就报错
去搜改task.jison和改coderuner的设置也不行
最佳答案
2025-9-15 22:56:25
小协和 发表于 2025-09-15 22:55
FishC 发表于 2025-9-15 22:22
你好!很高兴为你解答 ...


你做得非常对!把 `.cpp` 改成 `.c` 是完全正确的步骤,这确保了编译器会按照C语言的规则来编译你的代码。

编译成功后,运行生成的程序非常简单,都是在VSCode的**终端(Terminal)**里完成的。

以下是具体步骤:

1.  **首先进行编译**:按下你设置好的快捷键 `Ctrl+Shift+B`。如果编译成功,你会在终端窗口里看到类似编译完成的提示,并且在你的项目文件夹里会生成一个 `.exe` 文件(例如 `main.exe`)。

2.  **然后在终端中运行**:编译完成后,终端的光标会停留在命令输入行。你只需要输入生成的可执行文件的名字,然后按回车即可。

    *   **在Windows上**,命令前面需要加上 `.\`
      
  1. .\你的文件名.exe
复制代码

        例如,如果你的C文件叫 `hello.c`,那么生成的可执行文件默认就是 `hello.exe`。你需要输入:
      
  1. .\hello.exe
复制代码


    *   **在Linux或macOS上**,命令前面需要加上 `./`
      
  1. ./你的文件名
复制代码


**举个例子:**
假设你的项目文件夹结构如下,并且你刚刚编译成功:

  1. my_project/
  2. ├── .vscode/
  3. │   └── tasks.json
  4. ├── main.c
  5. ├── tool.c
  6. ├── tool.h
  7. └── hello.exe (这是编译后生成的)
复制代码


你要做的就是在VSCode的终端里输入:
  1. .\hello.exe
复制代码

然后按下回车,你的程序就开始运行了!

小技巧:实现“一键编译并运行”

如果你觉得每次先按 `Ctrl+Shift+B` 编译,再手动输入命令运行有点麻烦,你可以配置一个“组合任务”来实现一键完成。

这需要修改 `tasks.json`,再添加一个“运行”任务,并将两个任务组合起来。不过对于初学者来说,先熟悉“编译”和“运行”是两个独立步骤的概念非常重要。

**总结一下:**
*   编译(按快捷键):由VSCode的 tasks.json 控制。
*   运行(输入命令):在VSCode的终端里手动完成。

恭喜你解决了编译问题!现在就去终端里输入命令,享受你的程序运行起来的成就感吧!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2025-9-15 22:22:26 | 显示全部楼层
你好!很高兴为你解答这个问题。在VSCode中编译多个C/C++源文件,使用Coderunner这个扩展确实会遇到问题,因为它主要是为单个文件的快速运行而设计的,不太适合处理多文件项目。

别担心,我们不用Coderunner,改用VSCode更强大的任务(Tasks)功能来直接调用编译器(比如g++)进行编译,这是最可靠的方法。

请按照以下步骤操作:

1. 确保你的环境正确
首先,请确认你已经安装了C/C++编译器(如MinGW-w64),并且已经在系统环境变量PATH中配置好了。你可以在终端(Terminal)里输入以下命令来检查:
  1. g++ --version
复制代码

如果显示了版本信息,说明配置正确。

2. 修改 `tasks.json` 文件
在你的项目文件夹下,有一个 `.vscode` 文件夹,里面应该有一个 `tasks.json` 文件。如果没有,你可以通过菜单栏的“终端” -> “配置默认生成任务...”来创建一个。

我们需要修改这个文件,创建一个新的编译任务。请用以下内容替换或修改你的 `tasks.json`:


  1. {
  2.     "version": "2.0.0",
  3.     "tasks": [
  4.         {
  5.             "label": "build my project",
  6.             "type": "shell",
  7.             "command": "g++",
  8.             "args": [
  9.                 "-g",
  10.                 "${fileDirname}/*.cpp",
  11.                 "-o",
  12.                 "${fileDirname}/${fileBasenameNoExtension}.exe"
  13.             ],
  14.             "group": {
  15.                 "kind": "build",
  16.                 "isDefault": true
  17.             },
  18.             "problemMatcher": [
  19.                 "$gcc"
  20.             ]
  21.         }
  22.     ]
  23. }
复制代码


这个配置的作用是:
*   "label": 给你的任务起个名字,比如 "build my project"。
*   "command": 指定编译器,这里用的是 g++
*   "args": 这是传递给编译器的参数,非常重要!
    *   -g: 生成调试信息。
    *   "${fileDirname}/*.cpp": 编译当前文件所在目录下的所有.cpp源文件。这是实现“一下编译多个文件”的关键!
    *   -o: 指定输出的可执行文件名。
    *   "${fileDirname}/${fileBasenameNoExtension}.exe": 生成的可执行文件路径和名称(与当前打开的cpp文件同名)。
*   "group": 将它设为默认的生成任务,这样你可以用快捷键来运行。

3. 如何编译和运行
*   保存好 `tasks.json` 文件。
*   打开你的任何一个 `.cpp` 源文件。
*   按下快捷键 Ctrl+Shift+B (Windows) 或 Cmd+Shift+B (Mac)。这将执行我们刚才配置的编译任务。
*   如果编译成功,终端会显示编译完成。然后在VSCode的终端里,输入以下命令来运行生成的可执行程序(假设你的程序名叫 `main.exe`):
   
  1. .\main.exe
复制代码


总结一下:
  • 问题的核心是 Coderunner 不适合管理多文件项目。
  • 解决方法是使用 VSCode 自带的 Tasks 系统,直接调用 g++ 编译器,并通过通配符 `*.cpp` 来一次性编译所有源文件。
  • 快捷键 Ctrl+Shift+B 是编译,然后在终端手动运行程序。


希望这次能成功!如果还有问题,请检查一下你的编译器安装和环境变量配置是否正确。祝你编程愉快!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-9-15 22:55:42 | 显示全部楼层
FishC 发表于 2025-9-15 22:22
你好!很高兴为你解答这个问题。在VSCode中编译多个C/C++源文件,使用Coderunner这个扩展确实会遇到问题, ...

我学的从c语言  所以我把  "${fileDirname}/*.cpp",改成了  "${fileDirname}/*.c可以正确编译,但之后一个怎么运行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-9-15 22:56:25 | 显示全部楼层    本楼为最佳答案   
小协和 发表于 2025-09-15 22:55
FishC 发表于 2025-9-15 22:22
你好!很高兴为你解答 ...


你做得非常对!把 `.cpp` 改成 `.c` 是完全正确的步骤,这确保了编译器会按照C语言的规则来编译你的代码。

编译成功后,运行生成的程序非常简单,都是在VSCode的**终端(Terminal)**里完成的。

以下是具体步骤:

1.  **首先进行编译**:按下你设置好的快捷键 `Ctrl+Shift+B`。如果编译成功,你会在终端窗口里看到类似编译完成的提示,并且在你的项目文件夹里会生成一个 `.exe` 文件(例如 `main.exe`)。

2.  **然后在终端中运行**:编译完成后,终端的光标会停留在命令输入行。你只需要输入生成的可执行文件的名字,然后按回车即可。

    *   **在Windows上**,命令前面需要加上 `.\`
      
  1. .\你的文件名.exe
复制代码

        例如,如果你的C文件叫 `hello.c`,那么生成的可执行文件默认就是 `hello.exe`。你需要输入:
      
  1. .\hello.exe
复制代码


    *   **在Linux或macOS上**,命令前面需要加上 `./`
      
  1. ./你的文件名
复制代码


**举个例子:**
假设你的项目文件夹结构如下,并且你刚刚编译成功:

  1. my_project/
  2. ├── .vscode/
  3. │   └── tasks.json
  4. ├── main.c
  5. ├── tool.c
  6. ├── tool.h
  7. └── hello.exe (这是编译后生成的)
复制代码


你要做的就是在VSCode的终端里输入:
  1. .\hello.exe
复制代码

然后按下回车,你的程序就开始运行了!

小技巧:实现“一键编译并运行”

如果你觉得每次先按 `Ctrl+Shift+B` 编译,再手动输入命令运行有点麻烦,你可以配置一个“组合任务”来实现一键完成。

这需要修改 `tasks.json`,再添加一个“运行”任务,并将两个任务组合起来。不过对于初学者来说,先熟悉“编译”和“运行”是两个独立步骤的概念非常重要。

**总结一下:**
*   编译(按快捷键):由VSCode的 tasks.json 控制。
*   运行(输入命令):在VSCode的终端里手动完成。

恭喜你解决了编译问题!现在就去终端里输入命令,享受你的程序运行起来的成就感吧!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-10-8 03:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表