Я получил эту ошибку в Ubuntu 12.10 при попытке использовать boost с приложением C ++ без установленных библиотек:
el@apollo:~/foo8/33_parse_file$ g++ -o s s.cpp
s.cpp:3:29: fatal error: boost/foreach.hpp: No such file or directory
compilation terminated.
Из этого кода:
#include <iostream>
#include <boost/foreach.hpp>
#include <boost/tokenizer.hpp>
using namespace std;
int main(){
cout << "hi";
}
Я нахожусьUbuntu 12.10, поэтому я установил Boost следующим образом:
sudo apt-get install libboost-all-dev
Затем при перекомпиляции все работает, и теперь я могу использовать boost!
#include <iostream>
#include <string>
#include <boost/foreach.hpp>
#include <boost/tokenizer.hpp>
using namespace std;
using namespace boost;
int main(int argc, char** argv)
{
string text = "token test\tstring";
char_separator<char> sep(" \t");
tokenizer<char_separator<char> > tokens(text, sep);
BOOST_FOREACH(string t, tokens)
{
cout << t << "." << endl;
}
}
Печатает три слова token
, test
, string