Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 无法使用snappy支持编译leveldb_C++_Cmake_Leveldb_Snappy - Fatal编程技术网

C++ 无法使用snappy支持编译leveldb

C++ 无法使用snappy支持编译leveldb,c++,cmake,leveldb,snappy,C++,Cmake,Leveldb,Snappy,我试图在mac os x high sierra上构建支持压缩的应用程序,以供以后在XCode项目中使用。我正在浏览自述文件中描述的两个项目的标准编译过程。这包括通过cmake为两个项目构建项目。在snappyproject的情况下,程序是平滑的,所有的构建和安装都是完美的。但是,对于leveldb,我无法使cmake找到以前通过makeinstall安装的snappy库。我不知道如何调试cmake并找到它查找库的位置 感谢您的帮助 以下是两个版本的结果: 编辑 这是一个输出,似乎/usr/

我试图在mac os x high sierra上构建支持压缩的应用程序,以供以后在XCode项目中使用。我正在浏览自述文件中描述的两个项目的标准编译过程。这包括通过
cmake
为两个项目构建项目。在
snappy
project的情况下,程序是平滑的,所有的构建和安装都是完美的。但是,对于
leveldb
,我无法使
cmake
找到以前通过
makeinstall
安装的
snappy
库。我不知道如何调试
cmake
并找到它查找库的位置

感谢您的帮助

以下是两个版本的结果:


编辑

这是一个输出,似乎/usr/local/lib在列表中


另一次编辑

我已经尝试运行
cc-DCHECK\u FUNCTION\u EXISTS=snapy\u compress-Wl,-search\u paths\u first-Wl,-headerpad\u max\u install\u names-o check\u snapy\u exist CheckFunctionExists.c-lsnappy
按照
sel fish
提供的解决方案运行。但如果失败,则输出如下:

Undefined symbols for architecture x86_64:
  "std::__1::__vector_base_common<true>::__throw_length_error() const", referenced from:
      void std::__1::vector<snappy::SnappySinkAllocator::Datablock, std::__1::allocator<snappy::SnappySinkAllocator::Datablock> >::__push_back_slow_path<snappy::SnappySinkAllocator::Datablock const>(snappy::SnappySinkAllocator::Datablock const&) in libsnappy.a(snappy.cc.o)
      void std::__1::vector<char*, std::__1::allocator<char*> >::__push_back_slow_path<char* const>(char* const&) in libsnappy.a(snappy.cc.o)
  "std::logic_error::logic_error(char const*)", referenced from:
      void std::__1::vector<snappy::SnappySinkAllocator::Datablock, std::__1::allocator<snappy::SnappySinkAllocator::Datablock> >::__push_back_slow_path<snappy::SnappySinkAllocator::Datablock const>(snappy::SnappySinkAllocator::Datablock const&) in libsnappy.a(snappy.cc.o)
      void std::__1::vector<char*, std::__1::allocator<char*> >::__push_back_slow_path<char* const>(char* const&) in libsnappy.a(snappy.cc.o)
  "std::length_error::~length_error()", referenced from:
      void std::__1::vector<snappy::SnappySinkAllocator::Datablock, std::__1::allocator<snappy::SnappySinkAllocator::Datablock> >::__push_back_slow_path<snappy::SnappySinkAllocator::Datablock const>(snappy::SnappySinkAllocator::Datablock const&) in libsnappy.a(snappy.cc.o)
      void std::__1::vector<char*, std::__1::allocator<char*> >::__push_back_slow_path<char* const>(char* const&) in libsnappy.a(snappy.cc.o)
  "std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::resize(unsigned long, char)", referenced from:
      snappy::Uncompress(char const*, unsigned long, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) in libsnappy.a(snappy.cc.o)
      snappy::Compress(char const*, unsigned long, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) in libsnappy.a(snappy.cc.o)
  "std::terminate()", referenced from:
      ___clang_call_terminate in libsnappy.a(snappy.cc.o)
  "typeinfo for std::length_error", referenced from:
      void std::__1::vector<snappy::SnappySinkAllocator::Datablock, std::__1::allocator<snappy::SnappySinkAllocator::Datablock> >::__push_back_slow_path<snappy::SnappySinkAllocator::Datablock const>(snappy::SnappySinkAllocator::Datablock const&) in libsnappy.a(snappy.cc.o)
      void std::__1::vector<char*, std::__1::allocator<char*> >::__push_back_slow_path<char* const>(char* const&) in libsnappy.a(snappy.cc.o)
  "vtable for __cxxabiv1::__class_type_info", referenced from:
      typeinfo for snappy::Sink in libsnappy.a(snappy-sinksource.cc.o)
      typeinfo for snappy::Source in libsnappy.a(snappy-sinksource.cc.o)
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for __cxxabiv1::__si_class_type_info", referenced from:
      typeinfo for snappy::ByteArraySource in libsnappy.a(snappy-sinksource.cc.o)
      typeinfo for snappy::UncheckedByteArraySink in libsnappy.a(snappy-sinksource.cc.o)
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for std::length_error", referenced from:
      void std::__1::vector<snappy::SnappySinkAllocator::Datablock, std::__1::allocator<snappy::SnappySinkAllocator::Datablock> >::__push_back_slow_path<snappy::SnappySinkAllocator::Datablock const>(snappy::SnappySinkAllocator::Datablock const&) in libsnappy.a(snappy.cc.o)
      void std::__1::vector<char*, std::__1::allocator<char*> >::__push_back_slow_path<char* const>(char* const&) in libsnappy.a(snappy.cc.o)
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "operator delete[](void*)", referenced from:
      snappy::Compress(snappy::Source*, snappy::Sink*) in libsnappy.a(snappy.cc.o)
      snappy::SnappySinkAllocator::Deleter(void*, char const*, unsigned long) in libsnappy.a(snappy.cc.o)
  "operator delete(void*)", referenced from:
      snappy::UncompressAsMuchAsPossible(snappy::Source*, snappy::Sink*) in libsnappy.a(snappy.cc.o)
      snappy::Uncompress(snappy::Source*, snappy::Sink*) in libsnappy.a(snappy.cc.o)
      void std::__1::vector<snappy::SnappySinkAllocator::Datablock, std::__1::allocator<snappy::SnappySinkAllocator::Datablock> >::__push_back_slow_path<snappy::SnappySinkAllocator::Datablock const>(snappy::SnappySinkAllocator::Datablock const&) in libsnappy.a(snappy.cc.o)
      void std::__1::vector<char*, std::__1::allocator<char*> >::__push_back_slow_path<char* const>(char* const&) in libsnappy.a(snappy.cc.o)
      snappy::ByteArraySource::~ByteArraySource() in libsnappy.a(snappy-sinksource.cc.o)
      snappy::UncheckedByteArraySink::~UncheckedByteArraySink() in libsnappy.a(snappy-sinksource.cc.o)
  "operator new[](unsigned long)", referenced from:
      snappy::internal::WorkingMemory::GetHashTable(unsigned long, int*) in libsnappy.a(snappy.cc.o)
      snappy::Compress(snappy::Source*, snappy::Sink*) in libsnappy.a(snappy.cc.o)
      snappy::SnappyScatteredWriter<snappy::SnappySinkAllocator>::SlowAppend(char const*, unsigned long) in libsnappy.a(snappy.cc.o)
  "operator new(unsigned long)", referenced from:
      void std::__1::vector<snappy::SnappySinkAllocator::Datablock, std::__1::allocator<snappy::SnappySinkAllocator::Datablock> >::__push_back_slow_path<snappy::SnappySinkAllocator::Datablock const>(snappy::SnappySinkAllocator::Datablock const&) in libsnappy.a(snappy.cc.o)
      void std::__1::vector<char*, std::__1::allocator<char*> >::__push_back_slow_path<char* const>(char* const&) in libsnappy.a(snappy.cc.o)
  "___cxa_allocate_exception", referenced from:
      void std::__1::vector<snappy::SnappySinkAllocator::Datablock, std::__1::allocator<snappy::SnappySinkAllocator::Datablock> >::__push_back_slow_path<snappy::SnappySinkAllocator::Datablock const>(snappy::SnappySinkAllocator::Datablock const&) in libsnappy.a(snappy.cc.o)
      void std::__1::vector<char*, std::__1::allocator<char*> >::__push_back_slow_path<char* const>(char* const&) in libsnappy.a(snappy.cc.o)
  "___cxa_begin_catch", referenced from:
      ___clang_call_terminate in libsnappy.a(snappy.cc.o)
  "___cxa_free_exception", referenced from:
      void std::__1::vector<snappy::SnappySinkAllocator::Datablock, std::__1::allocator<snappy::SnappySinkAllocator::Datablock> >::__push_back_slow_path<snappy::SnappySinkAllocator::Datablock const>(snappy::SnappySinkAllocator::Datablock const&) in libsnappy.a(snappy.cc.o)
      void std::__1::vector<char*, std::__1::allocator<char*> >::__push_back_slow_path<char* const>(char* const&) in libsnappy.a(snappy.cc.o)
  "___cxa_pure_virtual", referenced from:
      vtable for snappy::Sink in libsnappy.a(snappy-sinksource.cc.o)
      vtable for snappy::Source in libsnappy.a(snappy-sinksource.cc.o)
  "___cxa_throw", referenced from:
      void std::__1::vector<snappy::SnappySinkAllocator::Datablock, std::__1::allocator<snappy::SnappySinkAllocator::Datablock> >::__push_back_slow_path<snappy::SnappySinkAllocator::Datablock const>(snappy::SnappySinkAllocator::Datablock const&) in libsnappy.a(snappy.cc.o)
      void std::__1::vector<char*, std::__1::allocator<char*> >::__push_back_slow_path<char* const>(char* const&) in libsnappy.a(snappy.cc.o)
  "___gxx_personality_v0", referenced from:
      snappy::GetUncompressedLength(snappy::Source*, unsigned int*) in libsnappy.a(snappy.cc.o)
      snappy::Compress(snappy::Source*, snappy::Sink*) in libsnappy.a(snappy.cc.o)
      snappy::RawUncompressToIOVec(char const*, unsigned long, iovec const*, unsigned long) in libsnappy.a(snappy.cc.o)
      snappy::RawUncompressToIOVec(snappy::Source*, iovec const*, unsigned long) in libsnappy.a(snappy.cc.o)
      snappy::RawUncompress(char const*, unsigned long, char*) in libsnappy.a(snappy.cc.o)
      snappy::RawUncompress(snappy::Source*, char*) in libsnappy.a(snappy.cc.o)
      snappy::Uncompress(char const*, unsigned long, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) in libsnappy.a(snappy.cc.o)
      ...
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
架构x86_64的未定义符号: “标准::_1::_向量u基u公共::_抛出u长度u错误()常量”,引用自: libsnappy.a(snappy.cc.o)中的void std::\uuuuuuuu 1::vector::\uuuuu push\u back\u slow\u路径(snappy::snappysinklocator::Datablock const&) void std::_1::vector::_push_back_slow_path(char*const&)在libsnappy.a(snappy.cc.o)中 “标准::逻辑错误::逻辑错误(字符常量*)”,引用自: libsnappy.a(snappy.cc.o)中的void std::\uuuuuuuu 1::vector::\uuuuu push\u back\u slow\u路径(snappy::snappysinklocator::Datablock const&) void std::_1::vector::_push_back_slow_path(char*const&)在libsnappy.a(snappy.cc.o)中 “std::length_error::~length_error()”,引用自: libsnappy.a(snappy.cc.o)中的void std::\uuuuuuuu 1::vector::\uuuuu push\u back\u slow\u路径(snappy::snappysinklocator::Datablock const&) void std::_1::vector::_push_back_slow_path(char*const&)在libsnappy.a(snappy.cc.o)中 “std::_1::基本_字符串::调整大小(无符号长,字符)”,引用自: libsnappy.a(snappy.cc.o)中的snappy::解压缩(char const*,unsigned long,std::uuu 1::basic_string*) libsnappy.a(snappy.cc.o)中的snappy::Compress(char const*,unsigned long,std::\uuuu 1::basic\u string*) “std::terminate()”,引用自: ___clang_call_终止于libsnapy.a(snappy.cc.o) “std的类型信息::长度错误”,引用自: libsnappy.a(snappy.cc.o)中的void std::\uuuuuuuu 1::vector::\uuuuu push\u back\u slow\u路径(snappy::snappysinklocator::Datablock const&) void std::_1::vector::_push_back_slow_path(char*const&)在libsnappy.a(snappy.cc.o)中 “vtable for _cxxabiv1::_class_type_info”,引用自: libsnappy.a(snappy sinksource.cc.o)中snappy::Sink的类型信息 libsnappy.a(snappy sinksource.cc.o)中snappy::Source的类型信息 注意:缺少vtable通常意味着第一个非内联虚拟成员函数没有定义。 “vtable for uuu cxxabiv1::uu si_class_type_info”,引用自: libsnappy.a(snappy sinksource.cc.o)中snappy::ByteArraySource的类型信息 snappy的类型信息::在libsnappy.a(snappy sinksource.cc.o)中取消选中DbyteArraySink 注意:缺少vtable通常意味着第一个非内联虚拟成员函数没有定义。 “vtable for std::length_error”,引用自: libsnappy.a(snappy.cc.o)中的void std::\uuuuuuuu 1::vector::\uuuuu push\u back\u slow\u路径(snappy::snappysinklocator::Datablock const&) void std::_1::vector::_push_back_slow_path(char*const&)在libsnappy.a(snappy.cc.o)中 注意:缺少vtable通常意味着第一个非内联虚拟成员函数没有定义。 “运算符删除[](void*)”,引用自: libsnappy.a(snappy.cc.o)中的snappy::Compress(snappy::Source*,snappy::Sink*) libsnappy.a(snappy.cc.o)中的snappy::snappysinklocator::Deleter(void*,char const*,unsigned long) “运算符删除(void*)”,引用自: libsnappy.a(snappy.cc.o)中的snappy::uncompressasmuchs可能(snappy::Source*,snappy::Sink*) libsnappy.a(snappy.cc.o)中的snappy::解压缩(snappy::Source*,snappy::Sink*) libsnappy.a(snappy.cc.o)中的void std::\uuuuuuuu 1::vector::\uuuuu push\u back\u slow\u路径(snappy::snappysinklocator::Datablock const&) void std::_1::vector::_push_back_slow_path(char*const&)在libsnappy.a(snappy.cc.o)中 libsnapy.a(snapy sinksource.cc.o)中的snapy::ByteArraySource::~ByteArraySource() snappy::UncheckedByteArraySink::~UncheckedByteArraySink()在libsnapy.a(snappy sinksource.cc.o)中 “运算符新[](无符号长)”引用自: libsnappy.a(snappy.cc.o)中的snappy::internal::WorkingMemory::GetHashTable(unsigned long,int*) libsnappy.a(snappy.cc.o)中的snappy::Compress(snappy::Source*,snappy::Sink*) libsnappy.a(snappy.cc.o)中的snappy::SnappyScatteredWriter::SlowAppend(char const*,unsigned long) “运算符新(无符号长)”引用自: libsnappy.a(snappy.cc.o)中的void std::\uuuuuuuu 1::vector::\uuuuu push\u back\u slow\u路径(snappy::snappysinklocator::Datablock const&) void std::_1::vector::_push_back_slow_path(char*const&)在libsnappy.a(snappy.cc.o)中 “\uuuuuuuucxa\u分配\u异常”,引用自: libsnappy.a(snappy.cc.o)中的void std::\uuuuuuuu 1::vector::\uuuuu push\u back\u slow\u路径(snappy::snappysinklocator::Datablock const&) void std::_1::vector::_push_back_slow_path(char*const&)在libsnappy.a(snappy.cc.o)中 “\uuuuuuuucxa\u begin\u catch”,引用自: ___clang_call_终止于libsnapy.a(snappy.cc.o) “\uuuuuuuuucxa\u free\u异常”,引用自: libsnappy.a(snappy.cc.o)中的void std::\uuuuuuuu 1::vector::\uuuuu push\u back\u slow\u路径(snappy::snappysinklocator::Datablock const&) void std::_1::vector::_push_back_slow_path(char*const&)在libsnappy.a(snappy.cc.o)中 “\uuuuuuuucxa\upure\u virtual”,引用自: snappy::l中的接收器的vtable
clang -Xlinker -v

@(#)PROGRAM:ld  PROJECT:ld64-278.4
configured to support archs: armv6 armv7 armv7s arm64 i386 x86_64 x86_64h armv6m armv7k armv7m armv7em (tvOS)
Library search paths:
    /usr/lib
    /usr/local/lib
cmake --debug-output --trace --debug-trycompile ..
check_library_exists(snappy snappy_compress "" HAVE_SNAPPY)
cc  -DCHECK_FUNCTION_EXISTS=snappy_compress -Wl,-search_paths_first -Wl,-headerpad_max_install_names -o check_snappy_exist CheckFunctionExists.c -lsnappy