libstdc ++. so.6: không thể mở tệp đối tượng được chia sẻ: Không có tệp hoặc thư mục như vậy


92

Tôi muốn chạy lệnh Cilkscreen bằng chương trình cilk ++ nhưng tôi đã gặp lỗi này

/usr/local/cilk/bin/../lib32/pinbin: lỗi khi tải thư viện được chia sẻ: libstdc ++. so.6: không thể mở tệp đối tượng được chia sẻ: Không có tệp hoặc thư mục nào như vậy

Bạn co thể giup tôi được không

Câu trả lời:


221

Thử cái này:

apt-get install lib32stdc++6

6
Đây là nhiều hơn cài đặt ia32-libs (theo đề nghị của trion). Khi thực hiện việc này, tôi phải cài đặt 1 hoặc 2 phụ thuộc khác trong khi ia32-libs có 241 phụ thuộc với tổng dung lượng đĩa bổ sung là 267 MB.
Mike

1
Điều này cũng hoạt động để chạy các thiết bị ảo Microsoft Windows để thử nghiệm chương trình tự giải nén. Cảm ơn!
Charles Engelke

4
@takeit Đối với máy 64bit, chúng ta có nên cài đặt lib64stdc++6thay thế không?
Bồ tát,

@bodd Bodhiva Tôi nghĩ lib32stdc++6là dành cho máy 64bit chạy phần mềm 32bit. Một cái gì đó tương tự như "lớp tương thích". Để chạy phần mềm 64bit ("native") trên máy 64bit, bạn chỉ cần libstdc++6. (Các liên kết được cho Ubuntu 14.04 Trusty dê núi sừng ngắn, tôi không thể tìm thấy liên kết cho Ubuntu 10.10 Maverick Meerkat.)
Franklin Yu

Tuyệt vời, mặc dù tôi gặp sự cố này trong một tình huống khác khi tôi cố gắng xây dựng mã nguồn android, nó đã tìm ra vấn đề một cách hoàn hảo. Cảm ơn bạn rất nhiều !!! ls
oscarzhou

15

Tôi cho rằng bạn đang chạy Linux trên máy amd64. Thư mục mà tệp thi hành của bạn đang ở trong (lib32 ) đề xuất tệp thực thi 32 bit yêu cầu thư viện 32 bit.

Những thứ này dường như không có trên hệ thống của bạn, vì vậy bạn cần phải cài đặt chúng theo cách thủ công. Tên gói phụ thuộc vào bản phân phối của bạn, đối với Debian là ia32-libs, đối với Fedora libstdc++.<version>.i686.


Tôi đang chạy Linux trên Ubuntu 10.10
ammouna

Sau đó, bạn muốn thực hiện theo cách Debian và cài đặt ia32-libshoặc chuyển sang phiên bản 64-bit của phần mềm bạn đang cố gắng sử dụng.
Fabian Knorr,

Tôi đã cài đặt gói này nhưng I'v có ngay bây giờ khác lỗi "quá trình giết bởi tín hiệu -7 E: Đính kèm để pid 3874 thất bại: Hoạt động không được phép"
ammouna

Có vẻ như bạn đang cố gắn trình gỡ lỗi / màn hình 64 bit vào ứng dụng 32 bit hoặc ngược lại? Bạn thực sự nên cố gắng lấy các thành phần 64-bit và tạo tệp thực thi 64-bit; điều này sẽ làm cho cuộc sống dễ dàng hơn nhiều.
Fabian Knorr

1
Tôi có thể làm cái này như thế nào ? Tôi là người mới bắt đầu sử dụng Linux và tôi không hiểu rõ về bạn cách gắn trình gỡ lỗi / màn hình 64 bit vào ov / s ứng dụng 32 bit. bạn có thể giải thích rằng xin
ammouna

9

Để sử dụng Fedora:

yum install libstdc++44.i686

Bạn có thể tìm ra phiên bản nào được hỗ trợ bằng cách chạy:

yum list all | grep libstdc | grep i686


7

Đối với Mũ đỏ:

sudo yum install libstdc++.i686
sudo yum install libstdc++-devel.i686

1

/usr/local/cilk/bin/../lib32/pinbin được liên kết động với thư viện libstdc ++. so.6 hiện không còn nữa. Bạn cần biên dịch lại Cilk


. nhưng libstdc ++ so.6 tồn tại trong / usr / lib thư mục
ammouna

1
Có, nhưng vì nó là một ứng dụng 32-bit, nó yêu cầu /usr/lib32/libstdc++.so.6.
Fabian Knorr
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.