Я новичок в cpp и пытаюсь использовать библиотеку cpp ppconsul (https://github.com/oliora/ppconsul ). Эта библиотека имеет зависимость от некоторых других библиотек, таких как (boost и curl). Я собрал ppconsul со всеми его зависимостями и пытаюсь использовать исполняемый файл ppconsul в новом проекте. Когда я пытаюсь построить новый проект, у меня возникает проблема с компоновщиком, как показано ниже.
ошибка LNK2001: неразрешенный внешний символ «public: virtual char const * thiscall ppconsul :: BadStatus :: what (void) const «(? what @ BadStatus @ ppconsul @@ UBEPBDXZ)
1> ConsulApp.obj: ошибка LNK2019: неразрешенный внешний символ «класс std :: basic_string, класс std :: allocator> __cdecl ppconsul :: helpers :: encodeUrl (класс std :: basic_string, класс std :: allocator> const &) «(? encodeUrl @ helpers @ ppconsul @@ YA? AV? $ basic_string @ DU? $ char_traits @ D @ std @@ V? $ allocator @ D @ 2 @@ std @@ ABV34 @@ Z) упоминается в функции» void __cdecl ppconsul :: parameters :: detail :: printParameter (класс std :: basic_ostream> &, класс std :: basic_string, класс std :: allocator> const &, структура ppconsul :: kw :: dc_keyword) «(?? $ printParameter @ Udc_keyword __ @ kw @ ppconsul @@@ detail @ parameters @ ppconsul @@ YAXAAV? $ basic_ostream @ DU? $ char_traits @ D @ std @@@ std @@ ABV? $ basic_string @ DU? $ char_traits @ D @ станд @@ V? $ распределитель @ D @ 2 @@ 4 @ __ @ Udc_keyword кВт @ 2 @@ Z)
Я пытался связать проект и изменить визуальную студию, но ничего не получалось. У кого-нибудь есть идеи по поводу этой проблемы с компоновщиком?
ТИА,
Prassi
Проблема решена — см. Эту ветку github.com/oliora/ppconsul/issues/24
собрать ppconsul как статическую библиотеку, передав в CMake -DBUILD_STATIC_LIB = ON.
Других решений пока нет …