C代码编译失败:无法创建临时目标文件权限被拒求助
解决C编译器无法创建临时目标文件的权限问题
我经常碰到开发者遇到这类临时目录权限报错,别担心,这本质是你的编译器(大概率是GCC)没有权限读写Windows临时目录C:\Users\HP\AppData\Local\Temp下的文件。下面给你分步骤的解决思路:
快速临时修复
- 右键点击你用来编译的终端(CMD/PowerShell)或者IDE(比如Code::Blocks、Dev-C++),选择以管理员身份运行,再重新编译代码。这会临时赋予程序足够的系统目录访问权限,一般能立刻解决问题。
永久解决:修改Temp目录权限
如果不想每次都开管理员权限,直接调整Temp文件夹的权限设置更彻底:
- 打开文件资源管理器,导航到
C:\Users\HP\AppData\Local\Temp(找不到AppData的话,记得开启顶部「查看」栏里的显示隐藏项目) - 右键点击Temp文件夹,选择「属性」→ 切换到安全标签页
- 点击「编辑」按钮,再点击「添加」
- 在弹出的输入框里输入你的用户名(这里应该是
HP),点击「检查名称」确认无误后,点「确定」 - 在权限列表里找到你的用户名,勾选完全控制、修改、读取和执行、列出文件夹内容、读取、写入这些权限项,然后依次点击「应用」→「确定」
- 重启你的编译器/IDE,再尝试编译代码
额外排查方向
- 检查杀毒软件或防火墙是否拦截了编译器的文件写入操作,有些安全工具会误判GCC创建临时目标文件的行为,你可以临时关闭防护测试,或者把编译器程序添加到信任列表
- 如果用IDE编译,看看IDE的设置里有没有「临时编译目录」的选项,手动指定一个你完全有权限的文件夹(比如
D:\MyCompileTemp)作为临时目录,也能避开系统目录的权限问题
内容的提问来源于stack exchange,提问作者Atish Dey




