2014-06-24 59 views
0

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

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> 

此说明和错误消息是否有足够的信息?预先感谢您的帮助。 ^

+1

无处没有你提到你的'include'搜索路径设置为。如果你可以在你的机器上找到它并不重要 - 编译器也必须找到它,如果'include'搜索路径没有指明'boost'头文件的位置,那么它不能这样做。 – PaulMcKenzie

+0

你试图使用什么特定的Boost库? – HEKTO

+0

Boost 1.55是该版本。 – Gedalya

回答

0

您必须告诉NetBeans有关Boost包含目录。打开项目属性弹出窗口,转到“Build - > C++ Compiler”,并将目录添加到“Include Directories”行。该弹出窗口应该是这样的:

enter image description here

2

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

如果你有,说你升压目录,C:\libraries\boost那么你就需要将以下添加到您的编译行-IC:\libraries\(我建议把提高这样一些地方,所以你可以在多个项目中轻松地使用它)。

我不使用netbeans,但我会想象有一个地方可以指定额外的包含目录(以及库目录)。

+0

我尝试在Netbeans中使用'其他[命令行]选项':-IC:\ local \ boost_1_55_0 \并且它不起作用。 – Gedalya