不能在 MinGW 中包含标头

Posted

技术标签:

【中文标题】不能在 MinGW 中包含标头【英文标题】:Cannot include a header in MinGW 【发布时间】:2014-12-24 06:58:55 【问题描述】:

我在 Windows 7 上使用带有 MinGW 的 SublimeText 并希望包含

#include <boost/multiprecision/cpp_int.hpp> 

但我明白了

fatal error: boost/multiprecision/cpp_int.hpp: No such file or directory
#include <boost/multiprecision/cpp_int.hpp>

无法根据我在此处和 Google 中找到的内容弄清楚该怎么做。

这是包含文件夹的路径: C:\MinGW\包括\

我应该添加类似的东西吗? (根据我的“理解”)

-I C:/MinGW/include/boost

但它不起作用......

【问题讨论】:

看来 cstdint.hpp 是 removed from boost.integer,现在可以在 boost.config 中找到。 【参考方案1】:

您需要安装 boost(来自 boost.org)。 http://www.boost.org/users/history/version_1_57_0.html

你的#include 已经以boost/ 开头,所以它会在include/boost 中查找。

【讨论】:

【参考方案2】:

更新:

"-IC:/MinGW/include"

哦,好吧,我想通了。

所以...我这里有所有必要的库 C:\MinGW\include\

但是为了能够包含 boost 文件 (C:\MinGW\include\boost),我需要将这个文件夹复制到 C:\MinGW\include\c++\4.9.1 这是 MinGW 正在寻找我的文件...

所以最后我得到了 C:\MinGW\include\c++\4.9.1\boost 里面有所有必要的库。现在可以了。

【讨论】:

这确实不是一个好的解决方案 - 额外的头文件/库应该安装在单独的(默认)位置,并且您应该在构建时指定所需的路径,以便编译器可以找到相关文件。 嗯。好吧,不幸的是,没有人解释如何做到这一点,我也无法在这里或在互联网上找到。据我所知,我发现类似的问题没有得到解答。 我尝试了几种指定绝对位置的方法,但对我不起作用。这就是我在这里问这个的原因。似乎没有人知道\帮助。 您只需要添加正确的-I 路径 - 试验直到正确为止。另请参阅 gcc 手册。

以上是关于不能在 MinGW 中包含标头的主要内容,如果未能解决你的问题,请参考以下文章

在 autotools 项目中包含(仅标头)库

在cmake的所有cpp文件中包含c ++标头[重复]

在框架模块中包含非模块化标头

为啥我不需要在 gcc 4.6 中包含 STL 标头?

AWS-amplify 在请求中包含 cognito Authorization 标头

是否可以在XMLHttpRequest标头中包含antiforgerytoken?