以下是我的包含列表。当我运行程序时,我收到此错误..
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>
答案 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