undefined reference to `snappy::MaxCompressedLength(unsigned long)'

来源:互联网 发布:淘宝买家秀在哪里看 编辑:程序博客网 时间:2024/06/06 14:01

../pkg/leveldb-1.13.0/libleveldb.a(table_builder.o): In function `leveldb::TableBuilder::WriteBlock(leveldb::BlockBuilder*, leveldb::BlockHandle*)':

table_builder.cc:(.text+0x40e): undefined reference to `snappy::MaxCompressedLength(unsigned long)'

table_builder.cc:(.text+0x440): undefined reference to `snappy::RawCompress(char const*, unsigned long, char*, unsigned long*)'

../pkg/leveldb-1.13.0/libleveldb.a(format.o): In function `leveldb::ReadBlock(leveldb::RandomAccessFile*, leveldb::ReadOptions const&, leveldb::BlockHandle const&, leveldb::BlockContents*)':

format.cc:(.text+0x4f6): undefined reference to `snappy::GetUncompressedLength(char const*, unsigned long, unsigned long*)'

format.cc:(.text+0x658): undefined reference to `snappy::RawUncompress(char const*, unsigned long, char*)'


     在使用levelDB库的时候,遇到这个问题,看提示应该是编译器找不到snappy这个库,在网上搜索了下,发现这个是一个压缩库,google的很多项目喜欢使用这个库,其特点是压缩效率高,可以进行PB级压缩。

    言归正传,于是就yum  install snappy 安装了这个库,然后再次编译我的测试文件

g++ -o leveldb -I ../pkg/leveldb-1.13.0/include/ -I ../pkg/leveldb-1.13.0/include/leveldb/  test_leveldb.cc   ../pkg/leveldb-1.13.0/libleveldb.a -lpthread -lsnappy

    然后就能正常使用了。

0 0
原创粉丝点击