2011-08-11 4 views
5

부스트가 필요한 C++ 프로젝트를 컴파일하려고합니다. 웹 사이트에서 최신 빌드를 다운로드하고 해당 파일을 적절한 libs 폴더에 복사했습니다 (MinGW를 사용하고 있습니다).부스트 라이브러리에 hpp 파일이없는 것 같습니다.

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

내가 foreach.hpp의 작업 복사본을 찾을 수 있지만 코드를 이동할 필요가 없습니다 수동으로 파일 : 나는 컴파일 할 때, 나는이 오류입니다.

솔루션

나는 잘못된 폴더에 활력을 복사했다.

+2

당신이이 경로를 포함 업데이트 한 이유를 인쇄? –

+1

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

+1

"적절한 libs 폴더"에 복사했다고 말하면 어떤 폴더가 될까요? – janitor048

답변

6

포함 경로가 올바르게 설정되어 있는지 확인해야합니다. Boost 1.47.0을 다운로드했다고 가정하면 Boost 설치 위치가 boost_1_47_0 디렉토리까지 가야하지만 boost은 제외됩니다.

/path/to/boost/boost_1_47_0 

하지

/path/to/boost/boost_1_47_0/boost 
11

는 C와 함께 설치된 라이브러리없이 ++ 응용 프로그램 부스트를 사용하려고 할 때 나는 우분투 12.10에 오류가 발생했습니다 :이 코드에서

[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에 있습니다. 12.10과 같이 부스트를 설치했습니다.

sudo apt-get install libboost-all-dev 

그런 다음 다시 컴파일하면 작동하고 이제는 부스트를 사용할 수 있습니다!

#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

+0

우분투 12.04에서 CGAL SWIG Bindings를 컴파일 할 때'libboost1.48-all-dev'가 필요했습니다. –

관련 문제