尝试编译C ++应用程序,找不到头文件

时间:2014-06-24 14:18:45

标签: c++ netbeans mingw

我正在尝试使用Netbeans编译C ++应用程序。这是我在一段时间内构建的第一个C ++应用程序。令我惊讶的是,我已经设置了一个环境并配置了包括Netbeans,Mingw和Msys在内的所有内容;我在尝试编译时遇到的问题是发现文件注释错误。下面的错误消息表明不存在,但我可以轻松地在我的Windows文件系统和Netbeans中导航到它,因为它是项目的一部分。我毫不怀疑我有一些简单的步骤可以忽略。该文件是Boost API的一部分,它的根文件夹位于我项目的文件夹中,而该文件夹又包含在我的项目的源文件夹中(在Options下)。

g++    -c -g -MMD -MP -MF "build/Debug/MinGW-Windows/addrman.o.d" -o build/Debug/MinGW-        Windows/addrman.o addrman.cpp
In file included from netbase.h:10:0,
             from addrman.h:7,
             from addrman.cpp:5:
serialize.h:19:48: fatal error: boost/type_traits/is_fundamental.hpp: No such file or      directory
 #include <boost/type_traits/is_fundamental.hpp>

此描述和错误消息是否足够信息?在此先感谢您的帮助。                                                 ^

2 个答案:

答案 0 :(得分:2)

在这种情况下,您的编译器g ++找不到头文件,因为它们位于非标准位置。您需要使用-I标志告诉gcc在哪里查找包含文件。

如果您的升级目录位于C:\libraries\boost,那么您需要将以下内容添加到编译行-IC:\libraries\(我建议将这样的地方添加到某个位置以便您可以使用它很容易在多个项目中。)

我不使用netbeans,但我想有一个地方可以指定其他包含目录(以及库目录)。

答案 1 :(得分:1)

您必须告诉NetBeans有关Boost包含目录的信息。打开项目属性弹出窗口,转到“Build - &gt; C ++ Compiler”并将目录添加到“Include Directories”行。此弹出窗口应如下所示:

enter image description here