2014-09-26 2 views
0

clang 3.6을 사용하여 Crow 라이브러리의 모든 예제를 빌드하려고하는데 clang 3.6을 사용하여 CC/CXX가 올바르게 발견되었습니다. 그것은 내가 익숙하지 않은 cmake를 사용합니다.Clang : C++ 11 헤더를 찾지 못했습니다.

그러나 C++ 11 헤더를 찾지 못했습니다. 된 libstdc + +를 제대로 지정되지 않았거나 어떤 사람들은 그것이 그 소리의 된 libstdC++ 자신을 구축 할 필요가 이해 할수 것으로 보인다

'future' file not found

: 같은

오류입니다.

누구나이 점을 밝힐 수 있습니다.

+2

당신이 연타로 C++ 11 개 기능을 사용하십시오 : 연타가 제공해야 http://stackoverflow.com/questions/10408849/how-can-i-use-c-11-features-in-clang –

+0

ABI 호환성 libstdC++가 이미 있기 때문에 clang을위한 특별 버전을 만들 필요가 없습니다. 특정 abi 지원 라이브러리 (libsupC++ 대 libC++ abi)에 링크해야하거나 C++ 11을 지원하는 버전으로 libstdC++를 업데이트하거나 -stdlib = libC++와 함께 libC++를 사용해야 할 수도 있습니다. – bames53

+0

@CiprianKhlud, 실제로 내가 cmake에서 전원을 켜 않았다 세트를 (CMAKE_CXX_FLAGS "$ {CMAKE_CXX_FLAGS} -Wall -std = C++ 11 -stdlib = 된 libstdC++") – rzhomx

답변

0

이전 주석에 따르면 Clang에서 C++ 11 모드를 활성화하지 않는 것이 문제입니다.

referenced question 에서처럼 Clang (또는 향후 GCC 용)에서 C++ 헤더를 찾지 않는다는 것이 문제입니다. 이 후 당신이해야 할 모든 작성하는 경우

-std=c++11 

는 "당신이 followinf 명령 줄 스위치를 통해 C++ 11 지원을 활성화 할 수 있도록 연타의 명령 줄은 GCC-호환의" C++ 11 코드. Makefile을 사용하는 경우 CXX 인수에 명령 행 스위치를 Clang에 추가해야합니다.

+0

실제로 다음과 같은 전원을 켜했다 : 세트 (CMAKE_CXX_FLAGS "$ {CMAKE_CXX_FLAGS} -Wall -std = C++ 11 -stdlib = libstdC++") clang은 내가 설치 한 gcc 4.8이 아닌 시스템 기본 C++ 헤더/라이브러리를 사용하려고합니다. 어떤 사람들은 --with-gcc-toolchain을 사용하여 clang을 다시 빌드하여 gcc를 찾을 위치를 알려줘야한다고 말합니다. 하지만 나는 clang 재건을 피하려고 노력하고있다. – rzhomx

+0

파일을 별도로 컴파일하려고 했습니까? 그리고이 헤더를 찾았는지 확인하기 위해 clang ++ (또는 g ++를 원한다면)를 사용 하시겠습니까? (나는 그것을 찾을 것으로 예상된다) –

+0

이렇게하면 빌드 할 때 unordered_map 파일을 찾지 못했습니다 : /usr/local/bin/clang ++ -Wall -std = C++ 11 -stdlib = libstdC++ excample.cpp – rzhomx

관련 문제