libstdc ++. so.6: не вдається відкрити спільний об'єктний файл: такого файлу або каталогу немає


92

Я хочу запустити команду Cilkscreen за допомогою програми cilk ++, але я отримав цю помилку

/usr/local/cilk/bin/../lib32/pinbin: помилка під час завантаження спільних бібліотек: libstdc ++. so.6: не вдається відкрити спільний файл об’єкта: такого файлу або каталогу немає

Можеш мені допомогти будь ласка

Відповіді:


221

Спробуйте це:

apt-get install lib32stdc++6

6
Це набагато краще, ніж встановлення ia32-libs (як запропонував trion). Роблячи це, мені довелося встановити 1 або 2 інші залежності, тоді як ia32-libs має 241 залежність на загальну кількість 267 МБ додаткового дискового простору.
Mike

1
Це також працює для запуску віртуальних приладів Microsoft Windows для тестування програми саморозпакування. Дякую!
Шарль Енгельке

4
@takeit Для 64-бітної машини нам слід встановлювати lib64stdc++6замість цього?
boddhisattva

@boddhisattva Я думаю, lib32stdc++6це для 64-бітної машини, що працює з 32- бітним програмним забезпеченням. Щось схоже на "рівень сумісності". Для запуску 64-бітного ("рідного") програмного забезпечення на 64-бітному комп'ютері вам просто потрібно libstdc++6. (Посилання на Ubuntu 14.04 Trusty Tahr; я не можу знайти посилання на Ubuntu 10.10 Maverick Meerkat.)
Франклін Ю,

Дивовижно, хоча я зіткнувся з цією проблемою в іншій ситуації, коли я намагаюся створити вихідний код Android, він цілком зрозумів проблему. Велике спасибі !!! ls
Оскаржоу,

15

Я припускаю, що ви використовуєте Linux на машині amd64. Папка, в якій знаходиться ваш виконуваний файл ( lib32), пропонує 32-розрядну виконувану програму, для якої потрібні 32-розрядні бібліотеки.

Здається, вони відсутні у вашій системі, тому вам потрібно встановити їх вручну. Назва пакету залежить від вашого дистрибутива, для Debian - ia32-libsдля Fedora libstdc++.<version>.i686.


Я запускаю Linux на Ubuntu 10.10
ammouna,

Потім ви хочете зробити це за допомогою Debian і встановити ia32-libsабо перейти на 64-розрядну версію програмного забезпечення, яке ви намагаєтесь використовувати.
Фабіан Норр

Мені встановили цей пакет, але я отримав чергову помилку "Процес убитий сигналом -7 E: Прикріпити до pid 3874 не вдалося: операція не дозволена"
ammouna

Схоже, ви намагаєтесь приєднати 64-розрядний налагоджувач / монітор до 32-розрядної програми чи навпаки? Вам справді слід спробувати отримати 64-розрядні компоненти та створити 64-розрядні виконувані файли; це значно полегшить життя.
Фабіан Норр

1
Як я можу це зробити? Я новачок у Linux, і я вас погано розумію, як підключити 64-розрядний налагоджувач / монітор до 32-бітової програми ov / s. Ви можете пояснити це, будь ласка
ammouna

9

Для використання Fedora:

yum install libstdc++44.i686

Ви можете дізнатися, які версії підтримуються, запустивши:

yum list all | grep libstdc | grep i686



1

/usr/local/cilk/bin/../lib32/pinbin динамічно пов'язаний з бібліотекою libstdc ++. so.6, яка більше не присутня. Вам потрібно перекомпілювати Cilk


але libstdc ++. so.6 існує в папці / usr / lib
ammouna

1
Так, але оскільки це 32-розрядна програма, вона вимагає /usr/lib32/libstdc++.so.6.
Фабіан Норр
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.