在 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。这应该可以解决这个问题。
我正在尝试在使用 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。这应该可以解决这个问题。