เสียงดังกราว ++ (รุ่น 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: ใน Ubuntu 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


ฉันเห็นรายงานข้อผิดพลาดจะไม่ได้รับการแก้ไข 13.10 ไม่ได้รับการสนับสนุนอีกต่อไปและ 3.3 ถูกลบใน 15.04 ดังนั้นฉันจึงโหวตให้ปิด
user.dz

2
@Sneetsher: คุณไม่เข้าใจว่าฉันยื่นนี้เกือบสองปีที่ผ่านมาเมื่อว่ารุ่นจำหน่ายและแพคเกจอยู่ในปัจจุบัน ?
Dirk Eddelbuettel

ใช่ฉันทำ. ฉันเพิ่งเห็นคำถามหายไป ฉันจะไม่มีใครตอบ -i /path-to-std-headersแต่ถ้าต้องการคุณสามารถเขียนหนึ่งพูดถึงการแก้ปัญหาจากรายงานข้อผิดพลาดที่เพิ่ม จะมีใครมาที่นี่ในภายหลัง 7 โหวตดูเหมือนมีบางแหล่งท่องเที่ยว :)
user.dz

1
สำหรับสิ่งที่มีค่าสิ่งนี้ยังคงไม่สร้าง (โดยค่าเริ่มต้น) ในปี 2559 ต่ำกว่า 16.04 เสียใจ
Dirk Eddelbuettel

ฉันจะลองและแจ้งให้คุณทราบ
user.dz

คำตอบ:


1

มัน (ในที่สุด) ทำงานได้ใน Ubuntu 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.