Score:1

/usr/include/x86_64-linux-gnu/sys มีเฉพาะลิงก์สัญลักษณ์ที่ใช้งานไม่ได้

ธง gb

O/S ของฉันคือ Ubuntu 20.04

ปัญหาเริ่มต้น: ฉันพยายามเรียกใช้ "สร้าง" และมีข้อผิดพลาดเช่น:

/usr/include/sys/cdefs.h:453:10: ข้อผิดพลาดร้ายแรง: bits/long-double.h: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว
  453 | #รวม <bits/long-double.h>
      | ^~~~~~~~~~~~~~~~~~~~~~

ตอนแรกฉันพยายามแก้ปัญหานี้โดยค้นหาส่วนหัวที่เทียบเท่า (โดยปกติจะเป็นไฟล์ /usr/include/x86_64-linux-gnu) และเพิ่มลิงก์สัญลักษณ์ การอ้างอิงเริ่มต้นโดยทั่วไปมาจาก /usr/include/c++/9/<อะไรก็ตาม>. หลังจากผ่านไปหลายสิบหรือมากกว่านั้น ดูเหมือนว่าจะมีส่วนหัวหายไปจำนวนหนึ่ง /usr/include/sys และแต่ละคนดูเหมือนจะมีความเท่าเทียมกันใน /usr/include/x86_64-linux-gnu/sys. จากนั้นฉันพยายามสร้าง symlink ของแบบฟอร์ม

/usr/include/sys --> /usr/include/x86_64-linux-gnu/sys

ฉันไม่รู้ว่านั่นเป็นสาเหตุของปัญหาที่ตามมาของฉันหรือไม่ แต่นั่นอาจไม่ใช่ความคิดที่ฉลาดที่สุดของฉัน สำหรับฉันดูเหมือนว่าฉันกำลังวนเป็นวงกลมเพราะข้อผิดพลาดส่วนหัวก่อนหน้านี้บางส่วนกลับมา ฉันตัดสินใจติดตั้ง libc6 และ libc6:i386 ใหม่ หลังจากนั้น "ส่วนหัว" ทั้งหมดใน /usr/include/x86_64-linux-gnu/sys ถูกทำเครื่องหมาย symlink ว่าใช้งานไม่ได้ เมื่อฉันตรวจสอบคุณสมบัติบางอย่าง มันก็ชัดเจนว่าทำไม... พวกเขาทั้งหมดเชื่อมโยงกลับไปที่ตัวเอง!!

ใครสามารถให้คำแนะนำเกี่ยวกับวิธียกเลิกความเสียหายและรับการกำหนดค่าที่จะเรียกใช้ Makefile ได้สำเร็จ

Score:3
ธง zw

คุณไม่ควรสัมผัสโครงสร้างไฟล์ด้วยตนเองในตำแหน่งที่ไฟล์ถูกควบคุมโดย APT ลบและยกเลิกการแทรกแซงด้วยตนเองทั้งหมด ครั้งหน้าอย่าทำแบบนี้!

คุณต้อง (ใหม่) ติดตั้งที่เกี่ยวข้อง แพ็คเกจการพัฒนาที่เป็นเจ้าของ bits/long-double.h ไฟล์ โดย

sudo apt-get install --reinstall libc6-dev

หากคุณมีความเสียหายมาก ให้ติดตั้งแพ็คเกจทั้งหมดที่มีให้ใหม่ รวมs โดยใช้คำสั่งด้านล่าง:

sudo apt-get install --reinstall $(dpkg -l | grep ^ii | grep "\-dev" | awk '{print $2}')
sudo apt-get install --reinstall $(dpkg -S /usr/include/ | sed 's/,//g' | sed 's/: \/usr\/include//g')
gb flag
การติดตั้ง libc6-dev ใหม่ได้แก้ไขส่วนหัวที่ขาดหายไปใน `/usr/include/x86_64-linux-gnu/sys` แต่ฉันยังคงได้รับข้อผิดพลาดเหมือนเดิม เนื่องจากไม่มีไดเร็กทอรีชื่อ `usr/include/sys` นั่นคือเหตุผลที่ฉันสร้าง symlink (ฉันสงสัยว่าฉันใช้ไวยากรณ์ผิด) หลังจากอ่านหน้านี้ [https://askubuntu.com/questions/1320971/about-files-in-usr-include-x86-64-linux-gnu] สำหรับฉันแล้วดูเหมือนว่า ควรมี `usr/include/sys` อยู่ ฉันต้องทำวิจัยเพิ่มเติมเกี่ยวกับเรื่องนี้อย่างชัดเจน
N0rbert avatar
zw flag
คำถามหลักของฉันที่นี่ - คุณพยายาม "สร้าง" แอปพลิเคชันใดในคำถามดั้งเดิมข้างต้น คุณช่วยแชร์ลิงก์ไปยังแหล่งที่มาได้ไหม
gb flag
ขอโทษที่ตอบช้า... ฉันไม่สามารถใส่รหัสที่นี่ เหตุผลหลักคือเป็นโครงการภายในของบริษัท เพื่อนร่วมงานของฉันอาจจะไม่พอใจที่จะพูดอย่างอ่อนโยน บริษัทให้เราเลือก O/S ที่จะใช้ และคนอื่นๆ ในทีมใช้ Linux เวอร์ชันอื่นหรือใช้ Windows ฉันอาจต้องลองใช้วิธีการที่ซับซ้อนกว่านี้ที่คุณอธิบาย แต่ก่อนอื่น ฉันต้องการทราบแน่ชัดว่ามันใช้ทำอะไร ฉันจะแจ้งให้คุณทราบว่าเกิดอะไรขึ้น
gb flag
ในที่สุดฉันก็ไม่จำเป็นต้องใช้วิธี dpkg/grep/awk/sed การติดตั้ง libc6-dev ใหม่ก็เพียงพอแล้ว ในความเป็นจริงมีปัญหากับ Makefile ในสาขาที่เก็บ git ที่ใช้งานอยู่

โพสต์คำตอบ

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