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

1 c++ boost

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

fatal error: boost/random/uniform_int_distribution.hpp: No such file or directory
Run Code Online (Sandbox Code Playgroud)

嗯...问题是文件在那里,当我注释掉包括其他文件被找到并且程序编译.我真的不明白这是怎么发生的.任何解释?

我的升级回家是/ 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++
Run Code Online (Sandbox Code Playgroud)

这是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>
Run Code Online (Sandbox Code Playgroud)

use*_*019 7

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

gcc的库搜索文档也始终包含在gcc/usr/local/include中.

因此,根据@ nttstar的回答,在boost 1.47之前添加了uniform_int_distribution.hpp标头,之前只有uniform_int.hpp.

我认为你之所以看到这个标题的错误的原因是你在/ usr/local/include中找到了一个较旧的提升