Почему для скомпилированных двоичных файлов по-прежнему требуются libdb, BerkeleyDB и другие?

Я собрал Bitcoin Core на одном малине Pi из источника после установки всех необходимых зависимостей, включая все libboost и BerkeleyDB. Это приложение работает нормально, а bitcoind живет счастливо в /usr/local/bin

Итак, я попробовал копировать bitcoind и другие исполняемые файлы Bitcoin из этого каталога в новую малину Pi, запускающую совершенно новую чистую операционную систему , и приложения не будут работать. Я получил ошибки, пока не установил libboost и BerkeleyDB и все другие зависимости на этом втором компьютере.

Я думал, что процесс компиляции сделал автономную исполняемую программу? Почему скомпилированные двоичные файлы все еще нуждаются в этих общих библиотеках?

Аналогично, исполняемые файлы доступны для загрузки с bitcoin.org, которые действительно автономны. Как я могу скомпилировать из исходного кода исполняемый файл как автономный?

6 голосов | спросил pinhead 4 J0000006Europe/Moscow 2016, 00:39:03

1 ответ


2

Стандартный процесс компиляции не статирует «включить» зависимости в исполняемый файл. Это относится к установленному libdb, boost и т. Д.

Это (динамические библиотеки ссылок) - это эффективная концепция. В противном случае каждый исполняемый файл, который использует - в качестве примера - boost, должен включать в себя всю надстройку в двоичном формате.

«Официальные» бинарные файлы Bitcoin-Core, предлагаемые через bitcoin.org, представляют собой статические скомпилированные исполняемые файлы (они включают все). Это необходимо для получения независимости от linux /distribution, а также для полного создания двоичных файлов, детерминированных (безопасность /целостность).

Вы можете создать статический связанный биткойн самостоятельно, следуя процессу сборки «зависит»: https://github.com/bitcoin/bitcoin/tree/master/depends

ответил Jonas Schnelli 4 J0000006Europe/Moscow 2016, 15:03:06

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132