c++ - 建筑 x86_64,柯南 geolite2pp 的未定义符号
问题描述
我正在尝试构建conan
具有依赖性的源,我得到了
Undefined symbols for architecture x86_64:
我正在尝试在 c++ 项目中使用 geolite2pp,但出现此错误
这是 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
解决方案
推荐阅读
- ios - 创建一个事件队列 RxSwift
- python-3.x - 是否可以使用python在pdf文档上垂直和水平打印时间戳?
- excel - 它不会插入所有行(VBA)
- python - 您是否忘记在 Django 中注册或加载此标签?
- javascript - 从 Angular 2+ 中的 Highcharts 库加载 variwide 图表
- c++ - 使用 C++ 和 WMI(Windows Management Instrumentation)读取 Windows 日志文件
- android - ML Kit Barcode Detector 无法识别 4 位或更少位数的 ITF 条形码?
- google-bigquery - BigQuery Python 客户端库 - 命名参数错误
- kubernetes - 我们是否需要外部端点来编排微服务
- javascript - 如何在 AJAX 中将值格式化为货币或百分比