Пожалуйста, предоставьте более подробную информацию
Вы можете получить полезные доказательства о вашем двоичном файле (simu) с помощью команды file
:
file path/to/the/simu
Вы также можете удвоитьпроверьте ldd
точное имя библиотек, которые ищет двоичный файл:
ldd path/to/the/simu
Пожалуйста, предоставьте выходные данные предыдущих команд, чтобы помочь ответить на ваш вопрос.
Между тем, одним из возможных ответов может быть ..
Я полагаю, что двоичный файл был скомпилирован в RedHat / Fedora / Centos с использованием пакета compat-lib * (который обеспечивает libstdc++-libc
lib),
Я думаю / предположим, что в Mint / Ubuntu нет одного и того же пакета и библиотеки compat-*
, но, будучи скомпилированным с такой библиотекой, возможно, он должен работать путем создания правильной символической ссылки, вручную, вПуть к библиотеке.Символическая ссылка должна указывать на одну из libstdc++
динамических библиотек, установленных в вашей системе)
, например, вы можете создать ссылку от /usr/lib/x86_64-linux-gnu/libstdc++-libc6.1-1.so.2
до /usr/lib/x86_64-linux-gnu/libstdc++.so.?
где?это меньший номер версии, который вы найдете в вашей системе.Пример команды (вам нужно точно ее адаптировать):
sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib/x86_64-linux-gnu/libstdc++-libc6.1-1.so.2
Существуют также случаи (в зависимости от того, что двоичный файл скомпилирован на 32 или 64 битах), когда вам нужно изменить путь x86_64-linux-gnu
на i386-linux-gnu
.Вы должны попытаться приспособиться к своему делу.
Это гипотетический грубый взлом, без гарантий :-) на самом деле мне просто любопытно.
Более чистый путь
Чтобы не загрязнять вашу ОС / систему ссылками, вы можете создать новую папку, назовите ее «customlibs», там же, где у вас есть программа / бинарный файл.
Вы можетесоздайте ссылки для каждого несоответствующего имени файла библиотеки внутри этой папки, например:
ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 ./customlibs/libstdc++-libc6.1-1.so.2
Затем, чтобы выполнить программу, откройте терминал и из cli измените переменную окружения LD_LIBRARY
с помощью этогокоманда:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/absolute/path/to/customlibs
таким образом, система ищет в customlibs
также libs.
В том же терминале запустите программу:
./simu
Таким образом, вы не будете связываться с системой.
Тебе очень повезло
Работать «чистым способом» гораздо проще, когда копируешь необходимые библиотеки из системы, скомпилированный двоичный файл
Это также более надежный способ, я выполнил это несколько раз.Взлом, который мы сейчас выполняем, связывая с текущими системными библиотеками, немного «сложнее».Удачи.