RocksDB中的便携式二进制文件

时间:2017-11-26 06:10:17

标签: c++ linker rocksdb

我使用以下标志集

编译我的代码
    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安装在两台机器上。

有关如何修复此错误并生成可在多台计算机上执行的二进制文件的任何想法?

1 个答案:

答案 0 :(得分:0)

使用ldd ./yourapplication检查远程计算机上的库依赖关系。

或构建&在构建应用程序之前安装静态snappy库。

我是在一台旧机器上做到的,它可以工作。