所以我在无法链接任何运行时库或使用异常的环境中工作。但是,我们想利用 BOOST 或 STL。最初我们尝试在 boost::container::string/vector/map/... 中进行链接,但无法解决链接器错误。
所以目前我正在尝试链接 STL 的标头,为此我定义了以下预处理器指令:
#define _HAS_ITERATOR_DEBUGGING 0
#define _HAS_EXCEPTIONS 0
我能够成功地与#include 链接,并且我能够实例化一个std::vector,但是当我调用push_back(32); 时 在向量上,我收到以下链接器错误:
error LNK2001: unresolved external symbol "void (__cdecl* std::_Raise_handler)(class stdext::exception const &)" (?_Raise_handler@std@@3P6AXAEBVexception@stdext@@@ZEA)
error LNK2001: unresolved external symbol _invoke_watson
error LNK2001: unresolved external symbol "void __cdecl std::_Xlength_error(char const *)" (?_Xlength_error@std@@YAXPEBD@Z)
我们正在使用 Visual Studio 2010(它是默认编译器)。我们希望在不久的将来迁移到 vs2012,如果它有助于解决这些错误,可以加快迁移速度。
在这些限制下(没有例外,没有运行时库)有没有办法链接 boost 或 STL?
谢谢!我们真的不想因为我们的环境限制而错过 STL/boost 的好处