C++ /mingw32/bin/ld.exe:无法打开输出文件HelloWorld.exe:权限被拒绝collect2.exe:错误:ld返回1退出状态

C++ /mingw32/bin/ld.exe:无法打开输出文件HelloWorld.exe:权限被拒绝collect2.exe:错误:ld返回1退出状态,c++,c++11,visual-studio-code,C++,C++11,Visual Studio Code,我尝试了一切,但无法生成HelloWorld.exe文件并运行此代码。这是因为您已在终端中打开此文件。您必须首先杀死终端。这是因为您的防病毒软件已删除该文件或阻止其执行。 解决问题的步骤: 复制您的代码并删除该文件,或转到步骤2 在运行新代码之前,请创建一个新文件并将代码粘贴到其中。请确保从防病毒扫描中排除/隔离您的程序文件夹。(或关闭防病毒功能或将其置于静默模式),使其不再删除或移动您的文件 运行新文件(现在应该可以正常运行:)) 如果您使用的是visual studio代码,则可以删除fil

我尝试了一切,但无法生成
HelloWorld.exe
文件并运行此代码。

这是因为您已在终端中打开此文件。您必须首先杀死终端。

这是因为您的防病毒软件已删除该文件或阻止其执行。 解决问题的步骤:

  • 复制您的代码并删除该文件,或转到步骤2
  • 在运行新代码之前,请创建一个新文件并将代码粘贴到其中。请确保从防病毒扫描中排除/隔离您的程序文件夹。(或关闭防病毒功能或将其置于静默模式),使其不再删除或移动您的文件
  • 运行新文件(现在应该可以正常运行:))

  • 如果您使用的是visual studio代码,则可以删除filename.exe(显示在filename.cpp下面),然后重新构建它即可

    如图所示


    这意味着您的防病毒软件打开了文件,或者您仍在运行以前的可执行文件,或者您的用户没有写入文件的权限,因此您存在权限问题。我投票支持第一个,尤其是如果您使用的是与操作系统附带的不同的防病毒软件。@drescherjm防病毒软件正在停止运行
    HelloWorld.exe
    ,所以为了运行它,我已经禁用了病毒保护,但是问题仍然存在。浏览到文件夹<代码> E:\C++ C++数据类型\HeloWord L/Co> >并查看文件是否存在。我的第二条建议是在C++编程中永远不要使用一个空间有路径的路径。一些AV有沙箱模式,如果被激活,会导致C++软件不能工作。我和阿瓦斯特一起看过。我通常有一个特殊的根文件夹,如
    c:\programming
    或驱动器,如
    x:
    ,用于我的代码,并告诉我的AV忽略整个树。
    #include<iostream>
    using namespace std;
    int main(){
        cout << "Hello World\n";
        return 0;
    } 
    
    [Running] cd "e:\C++\Data Types\" && g++ HelloWorld.cpp -o HelloWorld && "e:\C++\Data Types\"HelloWorld
    c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: cannot open output file HelloWorld.exe: Permission denied
    collect2.exe: error: ld returned 1 exit status