Điểm:1

/usr/include/x86_64-linux-gnu/sys chỉ chứa các liên kết tượng trưng bị hỏng

lá cờ gb

Hệ điều hành/S của tôi là Ubuntu 20.04.

Vấn đề ban đầu: Tôi đang cố chạy "make" và gặp các lỗi như:

/usr/include/sys/cdefs.h:453:10: lỗi nghiêm trọng: bits/long-double.h: Không có tệp hoặc thư mục như vậy
  453 | #include <bits/long-double.h>
      | ^~~~~~~~~~~~~~~~~~~~~~

Ban đầu tôi đã thử giải quyết vấn đề này bằng cách tìm kiếm một tiêu đề tương đương (thường là trong /usr/gồm/x86_64-linux-gnu) và thêm một liên kết tượng trưng. Giới thiệu ban đầu thường là từ /usr/include/c++/9/<bất cứ thứ gì>. Sau khoảng một tá trong số này, dường như có rất nhiều tiêu đề bị thiếu trong /usr/bao gồm/sys và mỗi người dường như có một tương đương trong /usr/gồm/x86_64-linux-gnu/sys. Sau đó tôi đã thử tạo một liên kết tượng trưng có dạng

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

Tôi không biết liệu đó có phải là nguyên nhân của những vấn đề tiếp theo của tôi hay không, nhưng có lẽ đó không phải là ý tưởng sáng suốt nhất của tôi. Đối với tôi, dường như tôi đang đi lòng vòng vì một số lỗi tiêu đề trước đó đã quay trở lại. Tôi quyết định cài đặt lại libc6 và libc6:i386. Sau đó, tất cả các "tiêu đề" trong/usr/include/x86_64-linux-gnu/sys đều là các liên kết tượng trưng được đánh dấu là bị hỏng. Khi tôi kiểm tra thuộc tính của một số, tôi thấy rõ tại sao... tất cả chúng đều liên kết ngược lại với chính chúng!!

Ai đó có thể cho tôi gợi ý về cách khắc phục thiệt hại và nhận cấu hình sẽ chạy Makefile thành công không?

Điểm:3
lá cờ zw

Bạn không nên chạm vào cấu trúc tệp theo cách thủ công ở những nơi tệp được kiểm soát bởi APT. Loại bỏ và hủy bỏ tất cả các can thiệp thủ công như vậy. Đừng làm điều này lần sau!

Bạn phải (cài đặt lại) có liên quan gói phát triển sở hữu bit/long-double.h tập tin qua

cài đặt sudo apt-get --reinstall libc6-dev

Nếu bạn bị hư hỏng nặng thì hãy cài đặt lại tất cả các gói cung cấp bao gồms bằng cách sử dụng các lệnh dưới đây:

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')
lá cờ gb
Việc cài đặt lại libc6-dev đã khắc phục các tiêu đề bị thiếu trong `/usr/include/x86_64-linux-gnu/sys` nhưng tôi vẫn gặp lỗi tương tự như trước đây, vì không có thư mục nào có tên `usr/include/sys`. Đó là lý do tôi tạo liên kết tượng trưng. (Tôi nghi ngờ mình đã viết sai cú pháp.) Sau khi đọc trang này [https://askubuntu.com/questions/1320971/about-files-in-usr-include-x86-64-linux-gnu], tôi thấy rằng `usr/include/sys` nên tồn tại. Tôi rõ ràng cần phải làm một số nghiên cứu thêm về điều này.
N0rbert avatar
lá cờ zw
Câu hỏi chính của tôi ở đây - bạn cố gắng "tạo" ứng dụng nào trong câu hỏi ban đầu ở trên? Bạn có thể vui lòng chia sẻ một liên kết đến các nguồn của nó?
lá cờ gb
Xin lỗi vì trả lời muộn... Tôi không thể đặt mã vào đây. Lý do chính là nó là một dự án nội bộ của công ty. Các đồng nghiệp của tôi có lẽ sẽ khó chịu nếu nói một cách nhẹ nhàng. Công ty cho phép chúng tôi chọn sử dụng O/S nào và những người khác trong nhóm sử dụng các phiên bản khác của Linux hoặc họ sử dụng Windows. Tôi có thể phải thử cách tiếp cận phức tạp hơn mà bạn mô tả, nhưng trước khi làm, tôi muốn tìm hiểu chính xác những gì nó làm. Tôi sẽ cho bạn biết chuyện gì xảy ra.
lá cờ gb
Cuối cùng, tôi không cần sử dụng phương pháp dpkg/grep/awk/sed. Việc cài đặt lại libc6-dev là đủ. Trên thực tế, có vấn đề với Makefile trong nhánh kho lưu trữ git đang sử dụng.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.