Windows下VS Code的PowerShell中GCC编译C文件报错及路径优化求助
Windows下GCC编译找不到文件的解决及路径简化方法
一、解决"no such file or directory"错误
- 先确认文件位置:在当前PowerShell窗口执行
Get-ChildItem(或缩写gci),查看当前目录下是否存在LinkedList.c。如果没有,说明文件不在当前工作目录。 - 切换到文件所在目录:用
cd 文件所在的完整路径,比如文件在E:\CodingWorkspace\VScodeC\Projects\LinkedList,执行:
之后再执行编译命令:cd E:\CodingWorkspace\VScodeC\Projects\LinkedListgcc LinkedList.c -o LinkedList.exe - 直接使用绝对路径编译:如果不想切换目录,直接把文件的完整路径传给gcc,路径包含空格时需加双引号:
gcc "E:\CodingWorkspace\VScodeC\Projects\LinkedList\LinkedList.c" -o LinkedList.exe
二、长路径简化技巧
1. PowerShell别名快速切换目录
给常用长路径创建别名,后续用别名快速跳转:
# 创建别名,MyCWork 可自定义为你偏好的名称 New-Alias -Name MyCWork -Value "E:\CodingWorkspace\VScodeC\very\long\path\to\your\files" # 之后直接通过别名切换目录 cd MyCWork
注意:该别名仅在当前PowerShell会话生效,重启后会消失。若需永久生效,需将命令添加到PowerShell配置文件($PROFILE)中。
2. 创建目录软链接
用软链接将长路径映射为短路径,终端可直接访问:
# 创建软链接,C:\CWork 是短路径,后面为目标长路径 New-Item -ItemType SymbolicLink -Path "C:\CWork" -Target "E:\CodingWorkspace\VScodeC\very\long\path" # 之后直接进入短路径操作 cd C:\CWork
3. 使用自定义环境变量
定义环境变量存储长路径,后续通过变量引用:
# 临时生效(当前会话) $env:C_CODE_PATH = "E:\CodingWorkspace\VScodeC\very\long\path" # 切换目录 cd $env:C_CODE_PATH # 若需永久生效,需在系统环境变量中添加,或写入PowerShell配置文件
4. 相对路径引用
如果文件与当前目录存在层级关系,用相对路径替代绝对路径:
- 文件在当前目录的子目录
src中:gcc .\src\LinkedList.c -o LinkedList.exe - 文件在当前目录的上级目录:
gcc ..\LinkedList.c -o LinkedList.exe
三、编译成功后运行程序
编译完成后,在PowerShell中直接执行:
.\LinkedList.exe
内容的提问来源于stack exchange,提问作者Hiểu Nam
相关产品推荐
相关产品推荐

