【问题标题】:Portable binary in RocksDBRocksDB 中的可移植二进制文件
【发布时间】:2017-11-26 06:10:17
【问题描述】:

我使用以下标志集编译我的代码

    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。

关于如何修复此错误并生成可在多台机器上执行的二进制文件有什么想法吗?

【问题讨论】:

    标签: c++ linker rocksdb


    【解决方案1】:

    使用 ldd ./yourapplication 检查远程机器上的库依赖。

    或者在构建您的应用程序之前构建和安装静态 snappy 库。

    我在一台旧机器上做了这个,它可以工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-29
      • 2016-02-25
      • 1970-01-01
      • 2016-12-29
      • 2013-03-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多