所以我最近通过最新版本的 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/