2010-06-11 3 views
5

내가 부스트 라이브러리를 사용하려고하지만 난 내 코드를 참조 실패C++에서 Boost :: regex.hpp 라이브러리를 어떻게 사용할 수 있습니까?

는/usr/포함/부스트/정규식/V4 : 나는 그 메시지를 얻을 컴파일하려고 할 때

#include "listy.h" 
#include <boost/regex.hpp> 
using namespace boost; 

ListyCheck::ListyCheck() { 

} 

ListyCheck::~ListyCheck() { 

} 

bool ListyCheck::isValidItem(std::string &__item) { 
    regex e("(\\d{4}[- ]){3}\\d{4}"); 

    return regex_match(__item, e); 
} 

을 /regex_match.hpp:50 : 에 정의되지 않은 참조가`부스트 : re_detail :: perl_matcher < __gnu_cxx :: __ normal_iterator, 표준 : : 할당>> 표준 : : 할당, 표준 : : 할당>>>> boost :: regex_traits>

:: 일치() '

/usr/include/boost/regex/v4/basic_regex.hpp:425 : 에 정의되지 않은 참조는`부스트 : basic_regex>

:: do_assign (문자의 CONST의 *, 숯불 CONST의 * 서명되지 않은 int)를 '

/usr/include/boost/regex/v4/perl_matcher.hpp:366 : 에 정의되지 않은 참조'부스트 : re_detail :: perl_matcher < __gnu_cxx :: __ normal_iterator, 표준 : 할당>> 표준 : 할당, 할당 표준 : "" "> 부스트 : regex_traits>

:: construct_init (부스트 : basic_regex>> const를 &, 부스트 :: regex_constants :: _ match_flags) '

등 ...

답변

4

이는 링커 오류입니다. Boost 정규 표현식 라이브러리는 shared_ptr과 같은 헤더 전용 라이브러리가 아닙니다 (예 :) .a 또는 .lib 또는 다른 바이너리 라이브러리와 링크해야합니다.

10

libboost_regex으로 링크해야합니다. gcc를 사용하는 경우 -lboost_regex을 컴파일러 스위치에 추가하십시오.

1

boost_regex와 연결해야합니다.

관련 문제