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

Compiler error when including boost/asio.hpp on C++ Builder 2010

本文关键字:hpp 错误 编译 asio Builder c++ 2010 boost 包含      更新时间:2023-10-16

编辑:解决!

我将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 Warning] error_code.hpp(486):W8104带有构造函数的局部静态对于多线程应用来说很危险

[BCC32 Warning] error.hpp(349): W8104带构造函数的局部静态对于多线程应用来说很危险

[BCC32 Error] auto_link.hpp(262):错误的pragma指令选项:- v

[BCC32 Error] static_log2.hpp(51):E2451符号"n"未定义

[BCC32 Error] static_log2.hpp(55):E2451符号"value"未定义

[BCC32 Error] static_log2.hpp(55):E2230联机数据成员初始化需要一个积分常数表达式

[BCC32 Fatal Error]static_log2.hpp(49): F1004内部配置0x55a4e8d的编译器错误0 x5500000

1 _46:

[BCC32 Warning] xutility(1808): W8017重新定义"NOMINMAX"则不然相同的

[BCC32 Warning] stint .h(168): W8017没有重新定义'WCHAR_MAX'相同的

[BCC32 Warning] win_tss_ptr.ipp(41):W8012有符号和无符号比较值

(BCC32警告)socket_select_interrupter.ipp (138):W8012有符号和无符号比较值

[BCC32 Error] 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 Cannot创建预编译头文件:头文件

初始化数据

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

//---------------------------------------------------------------------------
#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添加到我的Project中。

按编辑解决:

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