Обычно лучше компилировать на той же машине, на которой вы хотите выполнить?
(Примечание: я просто использую ffmpeg
в качестве примера я часто удивляюсь тому же с другими программами)
У меня есть скрипт сборки для ffmpeg
который компилирует поддержку нескольких нестандартных функций. Теперь я хочу использовать этот кодер на нескольких других машинах. Можно ли просто скопировать /usr/local/bin/ffmpeg
Исполняемый файл, или я предпочитаю запускать скрипт сборки на других машинах?
- Есть ли вероятность компиляции в зависимости от аппаратного обеспечения?
- Можно ли иметь какие-либо скрытые зависимости, которые мне также нужно скопировать, кроме самого исполняемого файла и всего, что я могу найти с
ldd
?
1 ответ
Да и да:)
если вы хотите, чтобы ваш скомпилированный двоичный файл выполнялся на нескольких машинах, вы должны скомпилировать его так, чтобы он соответствовал архитектуре и настройке (в отношении библиотек) на этих машинах. это обычно означает:
- связать все, что вы можете статически
- поставьте libs ваши двоичные потребности
- 32-битные вещи работают на 64-битных машинах, но не наоборот
поэтому, если вы не хотите думать о том, может ли он работать или нет, скомпилируйте и связайте двоичный файл с машиной, на которой вы хотите его запустить.