Win10下VSCode编译.cpp文件报错:ld.exe: can not open file ...xxx.exe:permission denied collect2.exe error

本文解决了一个常见的C++编译问题,当尝试编译cpp文件时,如果当前目录或子目录中存在同名的.exe文件,会导致ld.exe无法打开文件的错误。文章提供了简单的解决方案,只需更改同名.exe文件的名字即可避免此错误。

编译cpp文件时报错:

ld.exe: can not open file ...xxx.exe:permission denied collect2.exe error 
ld returned 1 exit status

原因:代码当前目录(包括子目录)下有同名的.exe文件,会报此错误,只要把名字改一下就行了

### VSCode 中 `collect2.exe` 权限被拒绝问题解决方案 当遇到 `Permission denied collect2.exe ld returned 1 exit status` 错误时,这通常意味着链接器无法访问所需的资源或文件。此类错误可能由多种原因引起,包括但不限于环境配置不当、路径设置不正确以及权限不足等问题。 #### 环境变量配置 确保所有必要的编译工具链已正确安装并添加到系统的 PATH 变量中。对于 Windows 用户来说,MinGW 或者 MSYS2 是常用的 GCC 工具集选项之一[^1]。如果这些工具未正确安装,则可能导致链接阶段失败。 #### 文件路径与权限检查 确认项目目录及其子文件夹具有足够的读写执行权限。有时反病毒软件可能会阻止某些进程对特定位置的操作;尝试暂时禁用防火墙或其他安全防护措施来排除干扰因素[^2]。 #### 插件冲突排查 使用 Code Runner 扩展时发生的构建错误也可能与其他扩展存在兼容性问题有关。可以考虑创建一个新的工作区,在干净环境中测试相同的代码片段以验证是否存在其他影响因素[^3]。 #### 配置 JSON 调整 针对 Arduino 开发场景下的特殊需求,建议调整 Visual Studio Code 的 settings.json 和 tasks.json 文件: ```json { "terminal.integrated.shell.windows": "C:\\Windows\\System32\\cmd.exe", "files.trimTrailingWhitespace": true, "editor.formatOnSave": false, "explorer.confirmDelete": false, "[cpp]": { "editor.defaultFormatter": "ms-vscode.cpptools" }, "C_Cpp.updateChannel": "Insiders", "arduino.path": "${env:USERPROFILE}\\AppData\\Local\\Arduino15\\packages", } ``` ```json { "version": "2.0.0", "tasks": [ { "label": "build", "type": "shell", "command": "\"${config:arduino.path}\"/hardware/tools/g++_arm_none_eabi/bin/arm-none-eabi-g++.exe", "args": [ "-c", "-g", "-Os", "-Wall", "-ffunction-sections", "-fdata-sections", "-mmcu=atmega328p", "-DF_CPU=16000000L", "-DARDUINO=10809", "-I.", "-o", "${fileDirname}/${fileBasenameNoExtension}.o", "${relativeFile}" ], "group": { "kind": "build", "isDefault": true } } ] } ``` 上述配置示例仅作为参考,请根据实际情况和个人偏好适当修改参数值。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值