默认情况下在 Windows 上不起作用?,c++,compiler-errors,mingw,header-files,preprocessor-directive"/>

首页 > 解决方案 > 为什么#包括默认情况下在 Windows 上不起作用?

问题描述

我已经在 Windows 上安装了 mingw-w64 编译器。但是在 c++ 程序预处理器指令中使用 #include<bits/stdc++.h> 总是会出错。如何解决这个问题?

标签: c++compiler-errorsmingwheader-filespreprocessor-directive

解决方案


bits/stdc++.h不是标准的头文件。因此,除非使用某些特定的编译器,否则不能保证它可以工作。甚至同一编译器的不同版本也可能提供也可能不提供。

当它可用时,它bits/stdc++.h只是#include每个标准 C++ 头文件。对于刚开始使用该语言的人来说,这可能是有意义的,因此他们不必担心弄清楚他们需要哪些包括哪些不需要。但是使用它会减慢编译时间,在某些情况下可能会使可执行文件比它需要的更大,并且(正如您所发现的)使代码不可移植。

唯一的解决方案是不使用它,而#include只使用您需要的特定标头。您真的“应该”在编程时这样做;当您需要在标头中声明某个函数时,您可以包含该标头,然后编写函数调用。一些 IDE 会告诉您每个功能需要哪些内容。

但是如果你已经把所有的代码都写好了,你就可以作弊。只需删除该#include <bits/stdc++.h>行并尝试编译。如果编译器抱怨缺少或未定义的符号,请搜索该符号以找出它来自哪个标头,以及#include它。冲洗并重复,直到你得到一个干净的编译。


推荐阅读