Я компилирую свой код, используя следующий набор флагов
LIBS += $(EXT_DIR)/librocksdb.a -lrt -lsnappy -llz4 -lz
где librocksdb.a генерируется
PORTABLE=1 make static_lib
Мне нужно отправить бинарный файл на несколько десятков машин (все это машины ec2 с одинаковым набором установленных пакетов, с одинаковой структурой кода / структуры каталогов).
Однако, когда я пытаюсь запустить код (на удаленном компьютере, а не на локальном, где он работает нормально), я получаю следующую ошибку
Error in RockDB: Compression type Snappy is not linked with the binary.
Когда я удаленно компилирую и использую бинарный файл оттуда, он также работает нормально. Libsnappy установлен на обеих машинах.
Любые мысли о том, как я могу исправить эту ошибку и создать двоичный файл, который может быть выполнен на нескольких машинах?
Используйте ldd ./yourapplication, чтобы проверить зависимость библиотеки на удаленном компьютере.
Или построить & Установите статическую библиотеку snappy перед сборкой приложения.
Я сделал это на старой машине, она работает.
Других решений пока нет …