Я пытаюсь скомпилировать двоичный файл проекта с открытым исходным кодом, чтобы нашим пользователям не приходилось компилировать это сами.
Я заметил, что некоторые двоичные файлы, созданные на одной 32-битной машине Ubuntu «A», не работают на 32-битной машине «B», при этом сообщается об ошибках, связанных с отсутствием файлов .so.
Однако, если Я компилирую с нуля на машине «B», тогда все ошибки исчезают.
Может быть какая-то причина, по которой компиляция кода на целевой машине устраняет эти ошибки? Я запускал только "./configure" и "make", но не "make-install", поэтому я не сделал эти файлы .so доступными глобально.
Может быть, компилятор обнаружит, что они есть. so файлы отсутствуют в системной библиотеке и в этом случае связывает статическую библиотеку с исполняемым файлом?
Как Ubuntu компилирует свои пакеты, чтобы пакет i386 работал на всех машинах x86?