我在尝试构建cppcms时遇到以下错误。

错误184错误LNK2019:函数“public:void __cdecl booster::regex::assign(class std::basic_string,class std::allocator> const&,int)”中引用的未解析的外部符号__imp_pcre_compile”(?assign @ regex @ booster @@ QEAAXAEBV?$ basic_string @ DU?$ char_traits @ D @ std @@ V?$ allocator @ D @ 2 @@ std @@ H @ Z)C:\ Stuff \ Development \ CPP \ cppcms-1.0.2 \ build \ booster \ pcre_regex.obj
错误185错误LNK2019:在函数“public”中引用了未解析的外部符号__imp_pcre_exec:bool __cdecl booster::regex::match(char const *,char const *,class std::vector,class std::allocator>>&,, int) const“(?match @ regex @ booster @@ QEBA_NPEBD0AEAV?$ vector @ U?$ pair @ HH @ std @@ V?$ allocator @ U?$ pair @ HH @ std @@@ 2 @@ std @@ H @ Z)C:\ Stuff \ Development \ CPP \ cppcms-1.0.2 \ build \ booster \ pcre_regex.obj
错误186错误LNK2019:函数“public:void __cdecl booster::regex::assign(class std::basic_string,class std::allocator> const&,int)”中引用的未解析的外部符号__imp_pcre_fullinfo”(?assign @ regex @ booster @@ QEAAXAEBV?$ basic_string @ DU?$ char_traits @ D @ std @@ V?$ allocator @ D @ 2 @@ std @@ H @ Z)C:\ Stuff \ Development \ CPP \ cppcms-1.0.2 \ build \ booster \ pcre_regex.obj
错误187错误LNK2019:在函数“public:__cdecl booster::regex::data::data(struct booster::regex::data const&)”中引用的未解析的外部符号__imp_pcre_malloc(?? 0data @ regex @ booster @@ QEAA @ AEBU012 @@ Z)C:\ Stuff \ Development \ CPP \ cppcms-1.0.2 \ build \ booster \ pcre_regex.obj
错误188错误LNK2019:函数__catch $ ?? 0data @ regex @ booster @@ QEAA @ AEBU012 @@ Z $ 0中引用的未解析的外部符号__imp_pcre_free C:\ Stuff \ Development \ CPP \ cppcms-1.0.2 \ build \ booster \ pcre_regex .obj
错误189错误LNK2019:函数“公共(public):__cdecl booster::aio::endpoint::endpoint(class std::basic_string,class std::allocator> const&,int)”中引用的未解析的外部符号__imp_htons”(0endpoint @ aio @ booster @@ QEAA @ AEBV?$ basic_string @ DU?$ char_traits @ D @ std @@ V?$ allocator @ D @ 2 @@ std @@ H @ Z)C:\ Stuff \ Development \ CPP \ cppcms- 1.0.2 \ build \ booster \ endpoint.obj

我的环境是Windows 7 64位,使用Visual Studio 2012 Professional和CMake 2.8.9。

对于我编译的所有内容,我都将CMake配置为生成用于VS2012的解决方案,以使用64位编译器。当我编译库时,我会编译发行版本。

首先,我没有问题地编译Zlib 1.2.7。
其次,我编译pcre-8.31没有问题。

然后,当有时间编译cppcms-1.0.2时,我遇到了很多错误。在CMake中配置cppcms时,我设置了PYTHON 2.7,我为ZLIB_INCLUDE_DIR使用C:/Stuff/Development/CPP/Zlib/zlib-1.2.7/build,并在末尾附加了/Release/zlibstatic.lib其中有您正在使用的ZLIB库,但是不确定我的PCRE是否正确设置。

由于PCRE在CMake中具有include和include2,因此我不确定要在其中添加什么,所以我只设置了pcre-8.31根目录和pcre-8.31构建目录。对于PCRE_LIB,我使用pcre-8.31 / build / Release / pcre.lib。

我已经删除了库的所有构建目录,甚至重新开始,但是我仍然遇到这些问题,我不确定是什么原因引起的。后来我意识到cppcms构建目录中的booster也有解决方案,因此我首先构建了该项目,该项目有3个失败的项目,但大多数成功,但是对于cppcms构建没有任何影响。

如果您对我的工作还有其他疑问,请询问,我将对其进行编辑。

最佳答案

询问有关cppcms的最佳位置是cppcms邮件列表。在此注册:
https://lists.sourceforge.net/lists/listinfo/cppcms-users

Artyom在那里提供了出色的支持服务。虽然他也是S.O.成员,不是所有cppcms开发人员都是,并且其中许多人还在邮件列表上提供帮助。总体而言,您将在那里得到更好的答案,尤其是因为有能力回答的人会更快地注意到您的问题。

关于c++ - cppcms大量未解析的外部符号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12657186/

10-10 17:33