c++ - MinGW g++ 在其自己的包含目录中找不到 header

标签 c++ windows boost c++11 mingw

所以我最近通过最新版本的 nuwen's MinGW distribution 安装了 MinGW其中包括 boost C++ 库。具体来说,我是在 boost 库提供的 scoped_ptr 之后。但是,当我尝试在 header 中包含 scoped_ptr ( #include <boost/scoped_ptr.hpp> ) 时,编译器会抛出
error: boost/scoped_ptr.hpp: No such file or directory

生成文件:

compile:
    g++ -o gen/cavestory src/**.cc 
run:
    gen/cavestory

此外,我在 SDL/** 下的 MinGW 包含目录中添加了一个旧版本的 SDL。所有的头文件都在那里,我检查过,编译器在我的 include SDL/SDL.h> 上抛出类似的错误.

我尝试过的事情:
<> 的每个变体和 ""在我的包含语句中
删除 .h.hpp
设置编译器标志以专门搜索包含标题的目录 g++ -I

这段代码是用较早版本的 MinGW 编译的,MinGw 发行版的作者特别声明他将 g++ 编译器选项更改为默认为 C++11,所以我认为这很可能与那。不过,我的 google-fu 还没有产生结果。

最佳答案

我想出的解决方案:根据上面 Michael Burr 的评论,我使用 verbose 标志运行了编译器。由于某些原因,搜索到的include目录并不在MinGw根目录下,而是埋在了lib目录下。我希望这可以通过其中一个安装脚本来修复,但我没有正确运行它或者它在我的系统上不起作用。我需要添加相关文件的目录是,在我的机器上,

C:\MinGW\lib\gcc\x86_64-w64-mingw32\4.8.2\include

这是一个快速而肮脏的修复。我确信有更好的方法,但这让我以最快的速度启动和运行。

关于c++ - MinGW g++ 在其自己的包含目录中找不到 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22243453/

相关文章:

c++ - .def 文件等效于 OS X

c++ - 为什么必须在哪里放置 “template”和 “typename”关键字?

windows - slime-fancy 未使用 emacs sbcl slime windows 配置加载

Java运行curl命令在Windows和Linux上是不同的

c++ - 尝试了解输入验证循环

c++ - 控制 Internet Explorer 以输入用户名/密码

c++ - 在 Windows 上与 USB HID 设备进行通信的最佳 USB 库是什么?

c++ - Boost 库已成为 C++ 标准

c++ - 在模板派生类中禁用方法覆盖

c++ - 使用 boost::algorithm:string:split 和 std::string 的 g++ 无效初始化错误