正在启动生成... cmd /c chcp 65001>nul && D:\ucrt64\bin\gcc.exe -fdiagnostics-color=always -g *.c -o D:\Code\c\program.exe cc1.exe: fatal error: *.c: Invalid argument compilation terminated. 生成已完成,但出现错误。
时间: 2025-03-25 15:02:49 浏览: 131
从你的描述来看,你在尝试使用 GCC 编译器编译 C 文件时遇到了一个问题。错误信息表明 `*.c` 被视为无效参数。
### 原因分析
在命令行中直接输入 `*.c` 并不是一个有效的文件名引用方式。通常,这种通配符需要由 Shell 进行扩展,在 Windows 的 CMD 中并不会自动完成此操作。因此,GCC 接收到的是字面意义上的 `*.c` 参数,而不是实际存在的源文件列表。
### 解决方案
你需要明确指定你要编译的具体 `.c` 源文件名称,例如:
```bash
cmd /c chcp 65001 >nul && D:\ucrt64\bin\gcc.exe -fdiagnostics-color=always -g main.c helper.c -o D:\Code\c\program.exe
```
如果你确实有多个 `.c` 文件并且希望一次性全部编译,可以手动列出所有文件名,或者借助脚本工具(如 PowerShell 或批处理文件)来动态获取当前目录下的所有 `.c` 文件并传递给 GCC。
#### 示例 (PowerShell)
你可以通过以下 PowerShell 命令生成正确的命令行:
```powershell
$cFiles = Get-ChildItem -Filter *.c | ForEach-Object { $_.Name }
$command = "D:\ucrt64\bin\gcc.exe -fdiagnostics-color=always -g $($cFiles -join ' ') -o D:\Code\c\program.exe"
Invoke-Expression $command
```
### 总结
确保传入到 GCC 的每个文件都是具体的、合法的路径或文件名。避免使用未解析的通配符表达式导致的问题。
---
阅读全文
相关推荐

















