2010-05-28 8 views
2

이 코드 :부스트 : : 파일 시스템 :: 경로 (표준 : : wstring의) 던져 예외

boost::filesystem::is_directory("/usr/include"); 

잘 작동.

이 코드를 모두 : 로케일 ::면 :

가 '표준 : : runtime_error'
무엇을()의 인스턴스를 던지는 후 호출 종료 :

boost::filesystem::is_directory(L"/usr/include"); 

가 예외를 던질 :: _ S_create_c_locale 이름 유효하지 않음

OS - 리눅스 민트

부스트 1.43

GCC-4.6.0

답변

1
  1. Linux에서 와이드 문자열을 사용하지 마십시오. 당신은 그들을 필요로하지 않습니다 ..
  2. 와이드 문자열을 일반 문자열로 변환하려고 시도하면, 이 로케일을 생성하고 시스템에이 로켈이 구성되지 않았을 수 있습니다. ,

    locale 
    locale -a 
    
  3. GCC-4.6는 아직 ;-) 공개되지 않은이 일반 컴파일러와 함께 작동하는지 확인하십시오

    명령의 출력을 가져와. 아마도 libstdC++는 잘 구축되지 않았을 것입니다.
관련 문제