2011-08-11 17 views
5

Boost gerektiren bir C++ projesi derlemeye çalışıyorum. En son yapıyı web sitesinden indirdim ve uygun dosyaları uygun libs klasörüne kopyaladım (MinGW kullanıyorum).Boost lib, hpp dosyaları eksik görünüyor mu?

In file included from main.cpp:4:0: 
headers.h:59:29: fatal error: boost/foreach.hpp: No such file or directory 
compilation terminated. 

Ben foreach.hpp bir çalışma kopyasını bulabilirsiniz ama kodu taşımak zorunda olmamalıdır dosyalarını manuel: Ben derleme, bu hatayı alıyorum değilim.

Çözüm

Yanlış klasöre destek kopyaladığı.

+2

Yolu Dahil güncellemek mi yazdırır? –

+1

g ++ -I -c * .cpp – Arunmu

+1

Onları "uygun libs klasörüne" kopyaladığınızı söylerseniz, hangi klasör olur? – janitor048

cevap

6

Dahil etme yolunuzun doğru şekilde ayarlandığından emin olmalısınız. Boost 1.47.0'ı indirdiğiniz varsayılırsa, yolunuz Boost yüklemenizin konumunu boost_1_47_0 dizinine kadar içermelidir, ancak boost birimini, örn.

/path/to/boost/boost_1_47_0 

değil

/path/to/boost/boost_1_47_0/boost 
11

C ile yüklü kütüphaneleri olmadan ++ uygulama boost kullanmaya çalışırken ben Ubuntu 12.10 bu hata var: Bu kodun itibaren

[email protected]:~/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"; 
} 

Ubu'dayım ntu 12.10 yüzden böyle Boost yüklü:

sudo apt-get install libboost-all-dev 

Sonra recompile üzerinde, çalışır ve şimdi boost kullanabilirsiniz!

#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; 
    } 
} 

üç kelime token, test, string

+0

Ubuntu 12.04'teki CGAL SWIG Bağlamaları'nı derlerken libboost1.48-all-dev işlevine ihtiyacım vardı. –

İlgili konular