尝试设置预编译头文件

Trying to set up a pre-compiled header

fatal error: can't create precompiled header stdc++.h.gch: Permission denied

我在 stdc++.h 所在目录的 windows powershell 上使用命令 g++ -std=c++14 stdc++.h 时出现上述错误。我该如何解决这个问题?

运行 Powershell 作为管理员,它应该可以正常工作 - 您将获得所需的所有权限。

这里有两点需要考虑。

  • 管理权限
  • 预编译header

第一个问题的解决方案很简单。您正试图在系统目录中进行更改。我假设以下尝试会成功,但我无法测试。

  1. 在桌面或任何其他用户目录中创建包含以下行的 my_pch.hpp
    #include <stdc++.h>
    
  2. 编译该目录中的header。
    g++ -std=c++14 my_pch.hpp
    

你应该得到相同的预编译 header。


您应该问问自己为什么需要预编译 header。 do we really need precompiled headers 上的答案提到了项目大小的影响,减少了编译时间,但面临着更多的问题。如果不确定,建议不要使用它们。