clang ++ (버전 3.3)에 헤더가 없습니다


9

이상해 보인다. 간단한 C ++ 프로그램을 가져 가라

#include <cmath>
#include <iostream>

int main(void) {

    std::cout << "Square root of 9 is " << sqrt(9) << std::endl;

}

g++(4.8)로 잘 전달 되지만 clang++(3.3) 으로 컴파일되지 않습니다 .

edd@don:/tmp$ g++ -o cmath cmath.cpp 
edd@don:/tmp$ ./cmath 
Square root of 9 is 3
edd@don:/tmp$ clang++ -o cmath cmath.cpp 
In file included from cmath.cpp:2:
/usr/lib/gcc/i686-linux-gnu/4.8/../../../../include/c++/4.8/cmath:41:10: \
       fatal error: 
      'bits/c++config.h' file not found
#include <bits/c++config.h>
         ^
1 error generated.
edd@don:/tmp$ 

나는 명백히 명백한 것을 놓치고 있다고 생각합니다.

그리고 관련 -dev패키지가 있습니다.

edd@don:/tmp$ COLUMNS=72 dpkg -l | grep "clang\|llvm"
ii  clang-3.3      1:3.3-5ubunt i386         C, C++ and Objective-C compiler (
ii  libclang-commo 1:3.3-5ubunt i386         clang library - Common developmen
ii  libclang-commo 1:3.2repack- i386         clang library - Common developmen
ii  libclang1      1:3.2repack- i386         clang library
ii  libclang1-3.3  1:3.3-5ubunt i386         clang library
ii  libllvm3.1:i38 3.1-2ubuntu2 i386         Low-Level Virtual Machine (LLVM),
ii  libllvm3.2:i38 1:3.2repack- i386         Low-Level Virtual Machine (LLVM),
ii  libllvm3.3:i38 1:3.3-5ubunt i386         Low-Level Virtual Machine (LLVM),
ii  llvm-3.3       1:3.3-5ubunt i386         Low-Level Virtual Machine (LLVM)
ii  llvm-3.3-dev   1:3.3-5ubunt i386         Low-Level Virtual Machine (LLVM),
ii  llvm-3.3-runti 1:3.3-5ubunt i386         Low-Level Virtual Machine (LLVM),
edd@don:/tmp$ 

편집 : 버그 추적 시스템을 확인하지 못했습니다 . 실제로 Launchpad에 있습니다.

편집 2 : 우분투 16.10에서는 마침내 작동합니다.

edd@max:~/src/progs/C++(master)$ clang++ -o cmath cmath.cpp 
edd@max:~/src/progs/C++(master)$ ./cmath 
Square root of 9 is 3
edd@max:~/src/progs/C++(master)$ 

사용 clang++버전 3.8.1.


버그 보고서 WO N'T FIXED, 13.10은 더 이상 지원되지 않으며 3.3은 15.04에서 제거됩니다. 그래서 나는 그것을 폐쇄하기로 투표했다.
user.dz

2
@Sneetsher : 배포 버전과 패키지가 최신 버전 인 2 년 전이 파일을 제출했음을 이해 하십니까?
Dirk Eddelbuettel

그래 나는 그 질문이 늙어가는 것을 본다. 나는 아무도 대답하지 않을 것입니다. 그러나 원하는 경우 추가 한 버그 보고서에서 해결 방법을 언급 할 수 있습니다 -i /path-to-std-headers. 나중에 나올 것입니다. 7 표는 매력이있는 것 같습니다. :)
user.dz 2018 년

1
가치가있는 것은 2016 년 16.04 미만으로 기본적으로 빌드되지 않습니다. 슬퍼.
Dirk Eddelbuettel

시도해보고 알려 드리겠습니다.
user.dz

답변:


1

우분투 16.10에서 작동합니다.

edd@max:~/src/progs/C++(master)$ cat cmath.cpp 

#include <cmath>
#include <iostream>

int main(void) {

    std::cout << "Square root of 9 is " << sqrt(9) << std::endl;

}
edd@max:~/src/progs/C++(master)$ clang++ -o cmath cmath.cpp 
edd@max:~/src/progs/C++(master)$ ./cmath 
Square root of 9 is 3
edd@max:~/src/progs/C++(master)$ 
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.