Неопределенные символы для архитектуры x86_64, Conan geolite2pp - PullRequest
0 голосов
/ 09 апреля 2019

Я пытаюсь создать conan источник с зависимостью, я получаю

Undefined symbols for architecture x86_64:

Я пытаюсь использовать geolite2pp в проекте c ++, но я получаю эту ошибку

Вот содержимое conanfile.py

class AppConan(ConanFile):
    settings = "os", "compiler", "build_type", "arch"

    requires =  "geolite2pp/0.0.1-2561@avantize/stable"

    generators = "cmake"

Ошибка при работе

conan install -s build_type=Release --build=missing
Undefined symbols for architecture x86_64:
  "_MMDB_aget_value", referenced from:
      GeoLite2PP::DB::get_field(MMDB_lookup_result_s*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::vector<char const*, std::__1::allocator<char const*> > const&) in GeoLite2PP.cpp.o
  "_MMDB_close", referenced from:
      GeoLite2PP::DB::~DB() in GeoLite2PP.cpp.o
      GeoLite2PP::DB::~DB() in GeoLite2PP.cpp.o
  "_MMDB_free_entry_data_list", referenced from:
      GeoLite2PP::DB::to_json(MMDB_entry_data_list_s*) in GeoLite2PP.cpp.o
  "_MMDB_get_entry_data_list", referenced from:
      GeoLite2PP::DB::lookup(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in GeoLite2PP.cpp.o
  "_MMDB_get_metadata_as_entry_data_list", referenced from:
      GeoLite2PP::DB::get_metadata() in GeoLite2PP.cpp.o
  "_MMDB_lib_version", referenced from:
      GeoLite2PP::DB::get_lib_version_mmdb() const in GeoLite2PP.cpp.o
  "_MMDB_lookup_string", referenced from:
      GeoLite2PP::DB::lookup_raw(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in GeoLite2PP.cpp.o
  "_MMDB_open", referenced from:
      GeoLite2PP::DB::DB(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in GeoLite2PP.cpp.o
  "_MMDB_strerror", referenced from:
      GeoLite2PP::ErrorCategory::message(int) const in GeoLite2PP_error_category.cpp.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
gmake[2]: *** [src-lib/CMakeFiles/geolite2++s.dir/build.make:99: src-lib/libgeolite2++.dylib] Error 1
[ 75%] Built target geolite2++
gmake[1]: *** [CMakeFiles/Makefile2:93: src-lib/CMakeFiles/geolite2++s.dir/all] Error 2
...