首页 > 解决方案 > 尝试设置预编译的标头

问题描述

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

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

标签: gccg++precompiled-headers

解决方案


这里有两件事需要考虑。

  • 管理权限
  • 预编译头文件

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

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

您应该得到相同的预编译头文件。


您应该问自己为什么需要预编译头文件。关于我们是否真的需要预编译头文件的答案提到了项目大小的影响,编译时间的减少,但面临进一步的问题。如果您不确定,建议不要使用它们。


推荐阅读