You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编译报错LNK1168:无法打开文件进行写入的问题排查

LNK1168错误:无法打开文件写入的解决方法

问题代码

#include <iostream>
#include <cmath>  // 原代码缺失,需添加以支持sqrt和std::round

float dis;
float time_;
float iv;
float acc = -9.8;
float value;

float getTime_(float disp, float iv_)
{
    if (iv_ == 0)
    {
        dis = -disp;
        time_ = sqrt((2 * dis) / acc);
        return time_;
    }
    else
    {
        dis = disp;
        time_ = (-iv_ + sqrt((((iv_ * iv_) * 1000) / 1000) + (19.6 * dis))) / 9.8;
        return time_;
    }
}

int main()
{
    value = 0;
    time_ = 0;
    iv = 0;
    dis = 0;

    float vod = 0.05; // 输入位移(单位:米)

    value = std::round(getTime_(vod, iv) * 1000.0) / 1000.0;

    std::cout << value << " seconds" << std::endl;

    return 0;
}

问题描述

程序无法构建,报错:Error: cannot open (Directory of file) for writing, LNK1168。此前通过Windows 10 CMD终止后台进程后问题暂时解决,但修改代码变量后错误再次出现。

解决方法

  • 终止占用进程:打开任务管理器,找到对应项目的.exe进程,右键选择“结束任务”,之后重新编译。如果频繁出现,可在IDE预生成事件中添加自动删除旧可执行文件的命令(比如VS中项目属性→生成事件→预生成事件,添加del "$(TargetPath)")。
  • 检查文件权限:若项目放在系统保护目录(如C:\Program Files),编译器无写入权限。将项目移至非系统目录(如C:\Users\你的用户名\Documents\Projects),确保文件夹有读写权限。
  • 清理IDE缓存:清理构建缓存,比如VS中选择“生成→清理解决方案”后重新生成;其他IDE可选择对应清理缓存的选项。
  • 修复代码缺失:原代码缺少<cmath>头文件,sqrt和std::round依赖该头文件,添加后可解决潜在编译错误。

内容的提问来源于stack exchange,提问作者bananass4life

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 21:00:52