- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经安装了 boost_1_41_0 并尝试遵循一些有关 xml 解析的教程:
#include <boost/property_tree/ptree.hpp>
int main(){
using boost::property_tree::ptree;
ptree pt;
cout<<"Here is an XML test!\n";
return 0;
}
但是问题是boost找不到需要的header:
gcc.compile.c++ bin/gcc-4.6.0/debug/main.o
main.cpp:1:46: fatal error: boost/property_tree/ptree.hpp: No such file or directory
compilation terminated.
使用“”代替<>也没有帮助。我还尝试传递选项 cxxflags=-I/pass/to/this/header - 这也不起作用。仅当我使用 header 的完整路径时 - 它才有效,但它依赖于另一个它无法找到的头文件。
那么如何让boost安装寻找自己的包含目录呢?谢谢。
最佳答案
您肯定需要让编译器知道在哪里可以找到 boost header 。但是,您必须将路径传递到“boost”目录所在的目录,而不是此包含文件所在的目录。因此,例如,如果您的 boost header 位于 /opt/boost/1.47.0/include
中您的文件位于 /opt/boost/1.47.0/include/boost/property_tree/ptree.hpp
,那么你必须通过/opt/boost/1.47.0/include
使用 -I
到编译器:-I/opt/boost/1.47.0/include
。或者更好的是,使用 -isystem /opt/boost/1.47.0/include
这样您就不会从这些 header 中收到警告。
是的,你忘了没有 cout
在全局命名空间中,您必须使用 std::cout
,或者说using std::cout;
或using namespace std;
...更不用说#include <iostream>
。另外,return
main
中的声明function 在 C++ 中不是必需的,默认情况下它会返回 0,除非您返回其他内容,因此您可以简单地删除该行。
希望有帮助。祝你好运!
关于c++ - boost/property_tree/xml_parser.hpp : No such file or directory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7340385/
我是一名优秀的程序员,十分优秀!