在 DLL 项目中使用 Boost (ActiveX)

Using Boost in a DLL project (ActiveX)

我正在尝试在使用 Visual Studio 2013 的 ActiveX DLL 项目上使用 Boost.Asio。 不确定出了什么问题,但是在构建时会出现这些错误:

Error 34 error LNK2019: unresolved external symbol "class boost::system::error_category const & __cdecl boost::system::system_category(void)" (?system_category@system@boost@@YAABVerror_category@12@XZ) referenced in function "public: __thiscall boost::system::error_code::error_code(void)" (??0error_code@system@boost@@QAE@XZ) C:\eCompany\activex-dll\maindoor\RESTClient.obj maindoor Error 35 error LNK2019: unresolved external symbol "class boost::system::error_category const & __cdecl boost::system::generic_category(void)" (?generic_category@system@boost@@YAABVerror_category@12@XZ) referenced in function "void __cdecl boost::system::`dynamic initializer for 'errno_ecat''(void)" (??__Eerrno_ecat@system@boost@@YAXXZ) C:\Projects\eCompany\activex-dll\maindoor\RESTClient.obj maindoor Error 36 error LNK1120: 2 unresolved externals C:\Projects\eCompany\activex-dll\maindoor\Debug\maindoorEWI.dll 1 1 maindoor

我已经在预处理器中添加了 BOOST_ALL_NO_LIB。项目中可能缺少什么?

简短的回答是做这样的事情:

C:\local\boost_1_58_0>bjam.exe runtime-link=static

并删除 BOOST_ALL_NO_LIB 是它的集合,然后重新构建 DLL。这应该可以解决这个问题。