2012-02-01 2 views
1

컴파일 된 Boost 라이브러리를 사용하여 컴파일하려합니다. 헤더 전용 Boost 라이브러리를 사용하여 컴파일 할 수 있지만 컴파일해야하는 라이브러리를 사용하고자 할 때 사용할 수 없습니다. toolset = gcc와 --build-type = complete stage를 사용하여 전체 Boost 라이브러리를 만들었습니다. 내가 이클립스를 사용하고 있고 libs 위치에 폴더를 연결 해요 : project_properties-> c/C++ 빌드 -> 설정 -> mingw C++ 링커 -> 라이브러리 및 라이브러리 검색 경로 (-L) m 폴더 경로를 연결합니다.C++ Boost 라이브러리 링커가 찾지 못함, 컴파일하지 않습니다

undefined reference to `boost::regex_error::raise() const'

또는

undefined reference to `boost::re_detail::lookup_default_collate_name(std::string const&)'
내가 부스트/regex.hpp을 포함하는 부스트 튜토리얼 설치 가이드에서 예제 코드를 컴파일하고있어

답변

1

당신이 필요 : 내가 좋아하는 오류를 받고 있어요 Boost precompiled library에 프로그램을 링크하십시오.

예 :

c++ -I path/to/boost_1_48_0 example.cpp -o example \ 
-L~/boost/stage/lib/ -lboost_regex-gcc34-mt-d-1_36 

See description here

+0

내가 그랬다고 생각 했나요? 그러나 Eclipde IDE에서 직접. project_properties-> c/C++ build-> settings-> mingw C++ 링커 -> 라이브러리 (-L)에 두 개의 폴더가 있습니다. – user1064036

+1

'-L'은 라이브러리 바이너리를 찾을 위치를 지정하고 실제로 라이브러리와 링크해야합니다 ('-l') –

+0

그래,하지만 정규식 디렉토리에서 몇 가지 다른 * .o 링크를 시도했지만 아무 것도 작동하지 않습니다. 그것은 말합니다 : "찾을 수 없습니다"나는 링크하려는 모든 libs. – user1064036

0

이클립스 : 프로젝트 속성 -> C++ 빌드 -> 설정 -> 링커 - 사용하려는 경우> 라이브러리

라이브러리에 boost_regex 추가 공유 라이브러리 또는 : /usr/lib/libboost_regex.a (또는 libboost_regex.a가 어디에 있든) 정적 연결을 원한다면.

+0

라이브러리에 boost_regex를 추가하면 오류가 발생합니다. (-lboost_regex를 찾을 수 없습니다) windows xp btw를 사용하고 있습니다. – user1064036

+0

@ user1064036 : Windows 또는 Linux는 여기에 상관 없지만 VisualC++ 컴파일러 또는 GCC는 부스트 라이브러리가 자동으로 링크되기 때문에 VC가 아닌 이식 가능한'#pragma comment (lib, lib-name)'을 사용한다. GCC (MinGW에서 사용)에서는 수동으로 링크해야합니다. –

관련 문제