나는 Boost Getting Started 문서를 따라 가고 있습니다. Bjam과 함께 설치했고 include 파일과 라이브러리 파일 (.a, .so)을 볼 수있었습니다.Linux에서 Boost 라이브러리 설치 및 빌드
/tmp/ccJFVVid.o: In function `boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::assign(char const*, char const*, unsigned int)':
test_boost2.cc:(.text._ZN5boost11basic_regexIcNS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE6assignEPKcS7_j[boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::assign(char const*, char const*, unsigned int)]+0x22): undefined reference to `boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::do_assign(char const*, char const*, unsigned int)'
collect2: ld returned 1 exit status
그것은 내 Windows 시스템에서 괜찮 일하는 :이 명령
g++ -I./boost/include -L./boost/lib -lboost_regex-gcc43-mt -static -o test_boost2 test_boost2.cc
를 사용하여 코드 위에 구축 할 경우
#include <boost/regex.hpp>
#include <iostream>
#include <string>
int main()
{
std::string line;
boost::regex pat("^Subject: (Re: |Aw:)*(.*)");
}
나는이 오류가 발생합니다.
무엇이 잘못 되었나요?
버전의 gcc 4.3.2 (데비안 4.3.2-1.1)
리눅스 XXXXXXXX 2.6.26-1-686 # 1 SMP (금) 3월 13일 세계 협정시 18시 08분 45초 2009는 i686 GNU/리눅스
작동합니다! 하지만 Boost (1.39)의 최신 버전을 설치하려면 어떻게해야합니까? 내가 정말로 사용하고 싶은 것은 Boost.Asio 라이브러리입니다. :) –
lenny를 사용하는 경우 'libboost1.35-dev'를 사용할 수 있습니다. 'squeeze'를 사용하는 경우 'libboost1.38-dev'가 있습니다. 독립 실행 형 버전의 asio 인 'libasio-dev'도 있습니다. lenny의 버전은 상당히 오래된 버전입니다. –
링크 된 라이브러리는 컴파일의 끝에 있어야합니까? 따라서 : g ++ boost.cpp -o boost -lboost_regex – user289882