#include 在Visual Studio中无法编译。

25 浏览
0 Comments

#include 在Visual Studio中无法编译。

最近我注意到#include 包含了所有的标准库和STL包含文件。当我尝试用Visual Studio 2013编译下面的代码段时,它给出了一个error C1083: Cannot open include file: \'bits/stdc++.h\': No such file or directory的错误。但是在CodeBlocks中它可以完美地工作。有没有办法避免这个错误?\n

#include 
using namespace std;
int main()
{
}

\n我在一些帖子中看到说,“这个头文件不是C++标准的一部分,因此不可移植”,应该避免使用。但我认为在比赛编程中它是有帮助的。

0
0 Comments

#include 是一个非标准的头文件,它是libstdc++的一部分,通常与GCC一起提供。然而,VS使用的是Microsoft自己的STL实现,不包含这样的文件。建议停止使用该头文件,而是包含必要的标准头文件,如 <iostream><vector><string><algorithm> 等等。

在使用Visual Studio编译代码时,如果遇到#include 这样的代码行,会出现编译错误。这是因为该头文件是非标准的,只在GCC中存在,而VS使用的是自己的STL实现,没有这个文件。因此,为了解决编译错误,建议不再使用该头文件。

相反,可以通过包含必要的标准头文件来替代#include 。例如,可以包含 <iostream> 来使用输入输出流,<vector> 来使用向量容器,<string> 来使用字符串,<algorithm> 来使用算法等等。这些标准头文件是所有编译器都支持的,可以确保代码的可移植性和兼容性。

总之,当在Visual Studio中使用#include 时会出现编译错误,因为该头文件是非标准的,在VS中不存在。为了解决这个问题,建议停止使用该头文件,而是包含必要的标准头文件,以确保代码的正确编译和运行。

0
0 Comments

在使用Visual Studio时,如果想要使用bits/stdc++.h预处理器,需要从给定的链接中下载stdc++.h文件。

下载链接如下:https://mega.nz/file/feIXkY7a#ECkj1bZKA-72dYzatuKsgBQJ4lMe0v81sfxuhyKCNk0

按照以下步骤操作:

1. 在路径C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\include中创建一个名为"bits"的文件夹。

2. 在某些情况下,路径C:\Program Files (x86)\Microsoft Visual Studio\2019\可能是空的。这种情况下,打开vs code并在顶部输入#include <,你将获得自动完成的建议。对于每个建议,都会显示一个路径。复制该路径并粘贴到文件资源管理器中。该路径将带您进入上述相同的include文件夹中。

3. 在bits文件夹中创建一个新的目录,并将stdc++.h文件粘贴到其中。

4. 如果Visual Studio正在运行,请重新启动Visual Studio并使用它。

需要注意的是,尽量避免使用像mega这样的外部链接,它们很可能在不久的将来失效。

以下是一种可靠的方法来查找stdc++.h文件。通过您喜欢的搜索引擎搜索"gnu.org stdc++.h",它应该出现在第一个或前几个搜索结果中。

另外,以下是GCC源代码中该文件的链接:github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/… 如预测的,答案中的链接已经失效。

0
0 Comments

#include with visual studio does not compile的问题出现的原因是该头文件是GCC编译器特有的,不被Microsoft的编译器支持。C++标准要求每个编译器提供一些头文件,如,但是这些头文件的具体实现可能依赖于编译器提供的其他非标准头文件,而就是其中之一。

可以将标准头文件(如)看作是“公共”接口,而编译器特有的内容(如bits/中的所有内容)则是“私有”实现。如果想要程序在其他编译器或者同一编译器的未来版本中能够移植,就不能依赖于编译器特有的实现细节。

如果需要一个包含所有标准头文件的头文件,可以很容易地自己编写。

0