在C ++ Builder 2010中包含boost / asio.hpp时出现编译器错误

时间:2011-04-29 10:16:28

标签: c++ boost boost-asio c++builder

编辑:已解决!

我将BOOST_ALL_NO_LIB添加到我的条件定义中,并将/ libs / system / src /文件夹中的errorcode.cpp添加到我的项目中。


我最近设置了C ++ Builder并且一直在玩它以了解C ++。

我需要将boost-asio用于我将要开发的项目,但是在尝试包含和编译它时遇到了一些问题。我已经设置了包含路径和所有应用程序的项目(我可以通过删除它进行测试,并且编译器抱怨它找不到asio.hpp,这不是问题)。

我尝试过2个版本的Boost,1_39和1_46,根据使用的版本我会得到不同的错误。

我想,忽略了首发警告。此外,如果您想从错误中获取完整的解析器上下文,请告诉我,我可以发布它们。

1_39:

  

[BCC32警告] error_code.hpp(486):   W8104局部静态与构造函数   对多线程应用程序来说很危险

     

[BCC32警告] error.hpp(349):W8104   局部静态与构造函数   对多线程应用程序来说很危险

     

[BCC32错误] auto_link.hpp(262):   E2075 pragma指令不正确   选项:-v

     

[BCC32错误] static_log2.hpp(51):   E2451未定义的符号'n'

     

[BCC32错误] static_log2.hpp(55):   E2451未定义的符号'值'

     

[BCC32错误] static_log2.hpp(55):   E2230在线数据成员   初始化需要积分   不断表达

     

[BCC32致命错误]   static_log2.hpp(49):F1004内部   编译器错误在0x55a4e8d与base   0x5500000

1_46:

  

[BCC32警告] xutility(1808):W8017   重新定义'NOMINMAX'不是   相同

     

[BCC32警告] stdint.h(168):W8017   重新定义'WCHAR_MAX'不是   相同

     

[BCC32警告] win_tss_ptr.ipp(41):   W8012比较已签名和未签名   值

     

[BCC32警告]   socket_select_interrupter.ipp(138):   W8012比较已签名和未签名   值

     

[BCC32错误] strand_service.hpp(31):   E2247   “strand_service :: do_complete(win_iocp_io_service   *,win_iocp_operation *,system :: error_code,unsigned int)'无法访问

     

[BCC32警告]   strand_service.ipp(95):W8058不能   创建预编译头:   标题中的初始化数据

源代码并不重要,但无论如何(删除asio include,我没有遇到任何麻烦,显然):

//---------------------------------------------------------------------------
#include <boost/asio.hpp>
#include <iostream>
//---------------------------------------------------------------------------

int main ()
{
    std::cout << "Test";
    std::cin.ignore();
    return 0;
}
//---------------------------------------------------------------------------

编辑:已解决!

我将BOOST_ALL_NO_LIB添加到我的条件定义中,并将/ libs / system / src /文件夹中的errorcode.cpp添加到我的项目中。

1 个答案:

答案 0 :(得分:2)

根据编辑解决:

我将BOOST_ALL_NO_LIB添加到我的条件定义中,并将/ libs / system / src /文件夹中的errorcode.cpp添加到我的项目中。