การติดตั้งเสียงดังกราว 5.0 และการใช้ C ++ 17


17

ฉันพยายามเป็นเวลา 3 วันในการติดตั้งเสียงดังกราว 5.0 บนเครื่อง Ubuntu 16.04 ฉันลองใช้มัคคุเทศก์หลากหลาย แต่ดูเหมือนว่าจะไม่ทำงาน เมื่อฉันพยายามเพียงแค่คว้าล่าสุดจาก SVN และสร้าง / ติดตั้ง (รายละเอียดที่นี่ ) พยายามรวบรวมโปรแกรมง่าย ๆ นำไปสู่:

> clang++ basic.cpp
/usr/include/wchar.h:39:11: fatal error: 'stdarg.h' file not found
# include <stdarg.h>

จากนั้นฉันลองตั้งค่า-DGCC_INSTALL_PREFIXสถานะสำหรับcmakeก่อนสร้าง แต่สิ่งนี้นำไปสู่ข้อผิดพลาดที่ดียิ่งขึ้น:

> clang++ basic.cpp
fatal error: 'iostream' file not found
#include <iostream>

ขั้นตอนที่ฉันติดตามมีดังนี้ (จากคำแนะนำด้านบน):

> cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local/ \
-G "Unix Makefiles" path/to/llvm
...
> make
...
> make check-clang
...
> make install-clang
...

ใครช่วยฉันเหมือนคนงี่เง่าและอธิบายทีละขั้นตอนวิธีการติดตั้งเสียงดังกราว 5.0? หรือชี้ให้ฉันเป็นแนวทางที่แม้แต่คนเขลาขั้นพื้นฐานอย่างฉันสามารถติดตามได้? หากคุณสามารถอธิบายวิธีการสร้างและติดตั้ง libc ++ สำหรับ C ++ 17 ได้ฉันจะขอบคุณตลอดไป

อัปเดต : ดูเหมือนว่าฉันไม่ได้ติดตั้งเสียงดังกราวอย่างถูกต้องเนื่องจากนี่เป็นผลลัพธ์ของการคอมไพล์ verbose ด้วยเสียงดังกราว:

...
#include <...> search starts here:
 /usr/local/include
 /usr/include/x86_64-linux-gnu
 /usr/include

และนี่คือผลลัพธ์สำหรับ g ++:

#include <...> search starts here:
 /usr/include/c++/5
 /usr/include/x86_64-linux-gnu/c++/5
 /usr/include/c++/5/backward
 /usr/lib/gcc/x86_64-linux-gnu/5/include
 /usr/local/include
 /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed
 /usr/include/x86_64-linux-gnu
 /usr/include
...

ผลลัพธ์ของคำสั่งนี้คืออะไร:dpkg -l libstdc++-5-dev | tail -1
Ravexina

คุณbuild-essentialติดตั้งแล้วหรือยัง
Ravexina

@Ravexina:ii libstdc++-5-dev:amd64 5.4.0-6ubuntu1~16.04.4 amd64 GNU Standard C++ Library v3 (development files)
Steve D

@Ravexina: และใช่ติดตั้ง build-essential
Steve D

คำตอบ:


33

ติดตั้ง clang-5 จาก llvm.org repositores

อันดับแรกเราควรเพิ่มที่เก็บ llvm.org ในรายการแหล่งข้อมูลของเราบรรทัดที่เราควรเพิ่มคือ:

deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-5.0 main

เปิด nano และเพิ่มบรรทัดด้านบนลงในไฟล์นี้:

sudo nano /etc/apt/sources.list.d/llvm.list

เพิ่มที่เก็บคีย์มันจะทำให้aptสามารถตรวจสอบแพ็คเกจที่ดาวน์โหลดได้

 wget -O - http://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -

หลังจากนั้นอัปเดตรายการของคุณ:

sudo apt-get update

จากนั้นติดตั้งเสียงดังกราว -5:

sudo apt-get install clang-5.0 lldb-5.0 lld-5.0

มันควรจะทำงาน

หากคุณต้องการรับรายชื่อของแพ็คเกจที่มีทั้งหมดจากที่เก็บที่เพิ่มใหม่นี้:

grep -i package: /var/lib/apt/lists/apt.llvm* | cut -f3 -d: | sort | uniq

มันจะให้รายการเช่น:

clang-5.0 
clang-5.0-doc 
clang-5.0-examples 
libclang-common-5.0-dev
...

จากนั้นคุณสามารถติดตั้งสิ่งใดก็ได้ที่คุณต้องการ


มันอาจช่วยรวบรวมปัญหาของคุณ

ไฟล์ส่วนหัวที่ถูกกล่าวถึงไม่มีอยู่ในข้อผิดพลาดของคุณ: stdarg.hเป็นส่วนหนึ่งของlibstdc++-5-devแพ็คเกจ

ฉันได้รับแพ็คเกจนี้ในเครื่องของฉันดังนั้นถ้าฉันเปิด

aptitude why libstdc++-5-dev

ฉันจะได้รับ:

i   build-essential Depends g++ (>= 4:5.2)                            
i A g++             Depends g++-5 (>= 5.3.1-3~)                       
i A g++-5           Depends libstdc++-5-dev (= 5.4.0-6ubuntu1~16.04.4)

ดังนั้นดูเหมือนว่าการติดตั้งbuild-essentialแพคเกจจะแก้ปัญหานี้ข้อผิดพลาดของเธอทำให้ผมไม่แน่ใจว่าสิ่งที่คุณทำ


ฉันbuild-essentialติดตั้งแล้ว แต่ผลลัพธ์สำหรับฉันaptitude why libstdc++-5-devจะเหมือนกับของคุณทุกประการยกเว้นไม่มีบรรทัดที่จำเป็นต่อการ build
Steve D

@SteveD ผมไม่แน่ใจ แต่บางทีมันอาจจะเป็นเพราะส่วนหนึ่งของสิ่งที่คุณมีการติดตั้งจากพื้นที่เก็บข้อมูลและส่วนอื่น ๆ ที่มีการติดตั้งด้วยตนเองอาจจะมีไม่ตรงกันในบางรุ่นห้องสมุด ฯลฯ
Ravexina

ฉันได้อัปเดตเนื้อหาคำถามด้วยสิ่งที่ฉันคิดว่าเป็นปัญหาบางทีคุณอาจทราบวิธีการแก้ไขหรือไม่
Steve D

@SteveD เอาท์พุทไม่เป็นประโยชน์ในสายตาของฉันบางทีคนอื่นอาจพบว่าพวกเขามีประโยชน์มากขึ้น ทำไมคุณไม่ติดตั้งจากที่เก็บ? ฉันคิดว่ามีโอกาสสูงที่ปัญหาของคุณจะหายไป ..
Ravexina

ฉันต้องการเสียงดังกราว 5.0 ซึ่งไม่สามารถใช้ได้ในที่เก็บ
Steve D
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.