เสียงดังกราวและเสียงดังกราว ++ ไม่พบหลังจากติดตั้งแพ็คเกจเสียงดังกราว-3.5


26

หลังจากติดตั้งclang-3.5แพคเกจแล้วการพิมพ์clangหรือclang++บนบรรทัดคำสั่งจะให้ข้อความระบุแพคเกจโปรแกรมเหล่านั้นให้ฉันทราบความพยายามเรียกใช้การติดตั้งclang-3.5อีกครั้ง apt ระบุว่าติดตั้งแล้วและเป็นเวอร์ชั่นล่าสุด

การติดตั้งเริ่มต้นด้วยคำสั่ง:

sudo apt-get install clang-3.5 llvm

build-essential ถูกติดตั้งก่อนหน้านี้

ความคิดใด ๆ เกี่ยวกับสิ่งที่อาจเกิดขึ้น?

คำตอบ:


30

มันอยู่ที่นั่น แต่มันยังคงเรียกว่าเสียงดังกราว-3.5

คุณสามารถรันมันเป็นclang-3.5(หรือclang++-3.5) หรือตั้งค่า symlink ให้เหมือนที่ฉันทำ (การติดตั้งเสียงดังกราวทั่วไปไม่ทำงาน):

sudo ln -s /usr/bin/clang-3.5 /usr/bin/clang
sudo ln -s /usr/bin/clang++-3.5 /usr/bin/clang++

น่าเกลียดหลีกเลี่ยงบางที แต่อย่างน้อยก็ใช้งานได้ตอนนี้ :)


สำหรับ clang-6.0 ฉันต้องทำสิ่งนี้เพิ่มเติม:ln -s /usr/bin/llc-6.0 /usr/bin/llc
forza azzurri

12

วิธีที่เหมาะสมในการใช้เสียงดังกราวเป็นค่าเริ่มต้นของคุณccและc++ใช้update-alternatives:

เป็นไปได้สำหรับหลาย ๆ โปรแกรมที่ทำหน้าที่เดียวกันหรือคล้ายกันที่จะติดตั้งในระบบเดียวในเวลาเดียวกัน ตัวอย่างเช่นระบบจำนวนมากมีเครื่องมือแก้ไขข้อความหลายตัวติดตั้งพร้อมกัน สิ่งนี้ให้ทางเลือกแก่ผู้ใช้ระบบอนุญาตให้แต่ละคนใช้เอดิเตอร์ต่างกันหากต้องการ แต่ทำให้ยากสำหรับโปรแกรมที่จะเลือกเอดิเตอร์ที่ดีเพื่อเรียกใช้หากผู้ใช้ไม่ได้ระบุค่ากำหนดเฉพาะ

ดังนั้นก่อนอื่นคุณต้องเพิ่มclang-3.5หรือclang++-3.5เป็นทางเลือกแทนเช่นgccและg++:

sudo update-alternatives --install /usr/bin/cc cc /usr/bin/clang-3.5 100
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++-3.5 100

ถ้าเมื่อใดก็ตามที่คุณต้องการเปลี่ยนกลับเป็นgccหรือg++คุณสามารถใช้--configตัวเลือก:

sudo update-alternatives --config c++

คุณสามารถเพิ่มคำอธิบายเพิ่มเติมเกี่ยวกับข้อโต้แย้งได้ไหม? ทำไมcc/ c++ระหว่างสองเส้นทาง? นั่นคือสิ่งที่100ในที่สุด? ลำดับความสำคัญ?
helmesjo

ดูupdate-alternativesเอกสาร ฉันคิดว่าพวกเขามีคำอธิบายที่ดีกว่าสิ่งใดที่ฉันจะสรุปที่นี่
Yan Foto

5

บน Ubuntu 15.04 คุณสามารถติดตั้งแพ็คเกจเสียงดังกราวด์ตามแพ็คเกจเสียงดังกราว จากนั้นคุณสามารถพิมพ์ clang ++ และพบว่าสามารถเรียกทำงานได้

sudo apt-get install clang

จะไม่ "apt-get install clang" เพียงติดตั้งเวอร์ชันล่าสุดแล้วใช้หรือไม่ หาก OP กำลังติดตั้ง v3.5 เขาไม่ต้องการใช้อันล่าสุด
amfcosta

4

การเพิ่มคำตอบของ Yan Foto (และในกรณีที่เป้าหมายของคุณคือการใช้งานได้clangแต่ไม่จำเป็นต้องใช้มันcc) คุณสามารถเพิ่มโปรแกรมทั้งชุดในครั้งเดียวโดยใช้

sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-3.8 380 \
--slave /usr/bin/clang++ clang++ /usr/bin/clang++-3.8 \
--slave /usr/bin/clang-check clang-check /usr/bin/clang-check-3.8 \
--slave /usr/bin/clang-query clang-query /usr/bin/clang-query-3.8 \
--slave /usr/bin/clang-rename clang-rename /usr/bin/clang-rename-3.8

(โปรดทราบว่าชุดของไบนารีที่มาพร้อมกับแต่ละรุ่นเสียงดังกราวอาจแตกต่างกันเช่น 3.6 มีclang-tblgen, 3.8 ไม่ได้)

หากคุณทำซ้ำสิ่งนี้สำหรับ clang ที่คุณติดตั้งทุกรุ่นคุณจะสามารถสลับไปมาระหว่างกันได้โดยใช้เพียงupdate-alternativesคำสั่งเดียว

(ในขณะเดียวกันเห็นได้ชัดว่ายังคงมีการถกเถียงกันอย่างต่อเนื่องว่าจะรวมลิงค์เหล่านี้กับแพ็คเกจ Ubuntu หรือไม่: https://bugs.launchpad.net/ubuntu/+source/llvm-3.1/+bug/991493 )


0

สร้างไฟล์. bashrc ในโฮมไดเร็กตอรี่ของคุณ พิมพ์รหัสบรรทัดนี้

alias clang ++ = "clang ++ - 3.5"

ปิดเทอร์มินัลของคุณ เปิดขึ้นอีกครั้ง จากนั้นลองคอมไพล์โปรแกรมของคุณอีกครั้ง

จากสิ่งที่ฉันสามารถบอกได้ว่าเสียงดังกราวไม่ทำงานจนกว่าคุณจะระบุรุ่นในชื่อคำสั่ง "เสียงดังกังวาน ++ - 3.5" ดังนั้นฉันจึงใช้ชื่อแทนในไฟล์. bashrc ของฉัน ดังนั้นฉันต้องพิมพ์ "clang ++" เท่านั้น

โดยวิธีที่ฉันดาวน์โหลด clang 3.5 ดังนั้นปรับคำแนะนำก่อนหน้านี้ให้เป็นเวอร์ชั่นของคุณ


0

หากคุณมีการติดตั้งเสียงดังกราวที่ถูกต้องอีกวิธีที่ง่ายมากในการประหยัดปัญหาในการพิมพ์หมายเลขรุ่นพร้อมกับชื่อของโปรแกรมคือการใช้คุณสมบัติการทำให้สมบูรณ์อัตโนมัติตัวอย่างเช่น (ติดตั้งเสียงดังกังวาน ++ - 3.5)

clang+[TAB][ENTER]

ดังนั้นคุณจะต้องพิมพ์clang+ตีและTab Enterทำงานในลักษณะเดียวกันกับชื่อไดเรกทอรีชื่อไฟล์ ฯลฯ (วิธีนี้จะไม่ช่วยคุณได้หากคุณติดตั้งโปรแกรมมากกว่าหนึ่งรุ่น)


0

สิ่งนี้ควรตั้งค่าการปรับปรุงทางเลือกสำหรับเสียงดังกราว - 4.0หากเสียงดังกังวาน - 3.8 (เช่นเดียวกับ Ubuntu 16.04) มีการติดตั้ง:

sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-4.0 100
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-4.0 100
sudo update-alternatives --install /usr/bin/clang-apply-replacements clang-apply-replacements /usr/bin/clang-apply-replacements-4.0 100
sudo update-alternatives --install /usr/bin/clang-check clang-check /usr/bin/clang-check-4.0 100
sudo update-alternatives --install /usr/bin/clang-query clang-query /usr/bin/clang-query-4.0 100
sudo update-alternatives --install /usr/bin/clang-tidy clang-tidy /usr/bin/clang-tidy-4.0 100
sudo update-alternatives --install /usr/bin/scan-build scan-build /usr/bin/scan-build-4.0 100
sudo update-alternatives --install /usr/bin/scan-view scan-view /usr/bin/scan-view-4.0 100

0

การเพิ่มคำตอบของ Johann Wendin เกี่ยวกับการเชื่อมโยง ในรูทเชลล์คุณสามารถลิงก์เครื่องมือเสียงดังกราวด์ต่างๆทั้งหมดได้ในครั้งเดียว:

เช่น

find /usr/bin/ -name clang*  | sed -E 's/^(\/usr\/bin\/.*)(\-[0-9]*)$/ln -s -v \1\2 \1/' | xargs -d '\n' -n 1 bash -c

จากนั้นทำซ้ำสำหรับ:

llc-*
lld-*
lldb-*
llvm-*

จากนั้นทุกอย่างควรเชื่อมโยงกันไม่ใช่แค่ตัวเลือกเล็ก ๆ (บางทีฉันยังคงลืมบางสิ่ง)

ซึ่งจะค้นหาไฟล์ทั้งหมดตามรูปแบบใน / usr / bin ลบหมายเลขต่อท้าย (-8 หรือ -9 หรือ -10 หรือแม้กระทั่ง -10) จากนั้นสร้าง symlink ในแต่ละไฟล์

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