1

我在 Windows 开发、GNU 和 C++ 方面经验丰富,但我是 Eclipse 新手。我正在尝试将Boost添加到我的 Eclipse 项目中,该项目使用 GNU 工具链在 Windows(但用于嵌入式处理器)上构建。

我在这里添加了 Boost:C:\altera\10.1\quartus\bin\cygwin\usr\include\boost_1_46_1

我已将该目录添加到我的 Eclipse 包含路径(项目属性 | C/C++ 常规 | 路径和符号 | 包含 | GNU C++),我看到 C:\altera\10.1\quartus\bin\cygwin\usr\include 出现作为内置目录。

我可以在 Eclipse Project Explorer 下浏览这些目录和文件,并从 Outline 中打开它们。然而,当我包含它们时,它不起作用。

我的代码包含以下内容:

#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/xml_parser.hpp>

Eclipse 生成的构建字符串如下所示(注意缺少上面提到的两个目录):

nios2-elf-gcc -xc++ -MP -MMD -c -I../NiosIITestSpin_bsp/UCOSII/inc -I../NiosIITestSpin_bsp/HAL/inc -I../NiosIITestSpin_bsp -I../NiosIITestSpin_bsp/drivers/inc  -DSYSTEM_BUS_WIDTH=32 -pipe -D__hal__ -DALT_NO_INSTRUCTION_EMULATION -D__ucosii__      -O0 -g -Wall   -EL -mhw-div -mcustom-fpu-cfg=60-1 -mhw-mul -mhw-mulx  -o obj/Test.o Test.cpp

Test.cpp:12:41: warning: boost/property_tree/ptree.hpp: No such file or directory
Test.cpp:13:46: warning: boost/property_tree/xml_parser.hpp: No such file or directory

我清理、重新生成 makefile 并重建,但我无法让编译器看到这个新的包含目录。

如果我更改代码以包含完整路径,它会更进一步,因为它可以打开这些文件,但它仍然无法打开它们包含的 Boost 文件。

我用谷歌搜索并搜索了 StackOverflow 和 Eclipse 无济于事。有很多类似的问题,但没有什么是完全相同或对我有用的。

有任何想法吗?

4

2 回答 2

0

试试这样:

#include "boost/property_tree/ptree.hpp"
#include "boost/property_tree/xml_parser.hpp"

#include <> 和 #include "" 的处理方式不同。第一个表示“系统”包含路径,而第二个表示“用户”包含路径。

于 2011-04-14T21:17:49.437 回答
0

我遇到了同样的问题并跳过了同样的障碍(甚至尝试了“”而不是 <>)。结果证明这个解决方案非常愚蠢。它是一台 Windows 机器;请记住,它们处理文件路径的方式不同。

从原来的帖子:

C:\altera\10.1\quartus\bin\cygwin\usr\include\boost_1_46_1

更改斜线方向,使其显示为:

c:/altera/10.1/quartus/bin/cygwin/usr/include/boost_1_46_1

(编辑包含路径;在项目属性 | C/C++ 常规 | 路径和符号 | 包含 | GNU C++ 下)

这为我解决了这个问题。

于 2013-02-26T18:41:46.690 回答