我是cpp的初学者,并尝试使用名为ppconsul(https://github.com/oliora/ppconsul)的cpp库。这个库依赖于一些其他库,如(boost和curl)。我已经构建了ppconsul及其所有依赖项,并尝试在新项目中使用ppconsul可执行文件。当我尝试构建新项目时,我遇到了一些链接器问题,如下所示。
错误LNK2001:未解析的外部符号“public:virtual char const * thiscall ppconsul :: BadStatus :: what(void)const”(?what @ BadStatus @ ppconsul @@ UBEPBDXZ) 1&gt; ConsulApp.obj:错误LNK2019:未解析的外部符号“class std :: basic_string,class std :: allocator&gt; __cdecl ppconsul :: helpers :: encodeUrl(class std :: basic_string,class std :: allocator&gt; const&amp; amp; amp; ;)“(?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(class std :: basic_ostream&gt;&amp;,class std :: basic_string,class std :: allocator&gt; const&amp;,struct ppconsul :: kw :: dc_keyword < / strong>)“(?? $ printParameter @ Udc_keyword __ @ kw @ ppconsul @@@ detail @ parameters @ ppconsul @@ YAXAAV?$ basic_ostream @ DU?$ char_traits @ D @ std @@@ std @@ ABV?$ basic_string @ DU?$ char_traits @ d @ @@ STD V'$分配器@ d @ @@ 2 4 @ Udc_keyword __ @千瓦@ @@ 2 Z)
我试图链接项目并改变视觉工作室但没有任何效果。有人对这个链接器问题有任何想法吗? TIA, Prassi
答案 0 :(得分:0)
问题已解决 - 请参阅此主题github.com/oliora/ppconsul/issues/24
通过将-DBUILD_STATIC_LIB = ON传递给CMake,将ppconsul构建为静态库。