boost,c ++和致命错误:boost / random / uniform_int_distribution.hpp:没有这样的文件或目录

时间:2012-01-16 15:01:20

标签: c++ boost

以下是我的包含列表。当我运行程序时,我收到此错误..

fatal error: boost/random/uniform_int_distribution.hpp: No such file or directory

嗯...问题是文件存在,当我注释掉包含其他文件时,程序编译。我真的不明白这是怎么发生的。有什么解释吗?

我的升级回家是/ home / ubuntu / boost /所以路径为/home/ubuntu/boost/boost/random/uniform_int_distribution.hpp

以下是我如何调用:

 g++ rtb.cpp -o rtb.o -L/home/ubuntu/boost  -L/usr/local/include/ -lfcgi++

以下是te

#include <boost/tokenizer.hpp>
#include <boost/random/mersenne_twister.hpp>
#include <boost/random/uniform_int_distribution.hpp>
#include <boost/bimap.hpp>
#include <boost/multi_array.hpp>
#include <cassert>
#include <boost/config.hpp>
#include <iostream>
#include <fstream>
#include <string>
#include <boost/tuple/tuple.hpp>
#include <boost/graph/adjacency_list.hpp>
#include <boost/graph/visitors.hpp>
#include <boost/graph/breadth_first_search.hpp>
#include <map>
#include <boost/multi_index_container.hpp>
#include <boost/multi_index/ordered_index.hpp>
#include <boost/multi_index/identity.hpp>
#include <boost/multi_index/member.hpp>

2 个答案:

答案 0 :(得分:7)

问题是当你使用-I给出编译器将寻找包含文件的目录时,你正在使用-L(它给出了可以找到目标文件库的目录)

始终包含来自gcc's documentation for library search / usr / local / include的

gcc

因此,从@ nttstar的回答看,uniform 1.int_distribution.hpp标头在boost 1.47之前添加了一个,之前只有uniform_int.hpp。

我认为你只看到这个标题的错误的原因是你在/ usr / local / include

中找到了较旧的提升

答案 1 :(得分:1)

同意Mark。

如果你只对uniform_int_distribution.hpp有问题,你应该检查你的升级版本。

在boost 1.47中添加了uniform_int_distribution.hpp标头。在此之前,只有uniform_int.hpp。您可以查看1.46随机库文档here