c++ - Boost 1.55 不适用于 Visual Studio 2013

标签 c++ visual-studio boost libraries binaries

我已经正确编译了 boost 二进制文件并按照所有说明进行操作,但是我遇到了很多错误,我不知道为什么!

这是我的“包含”设置: enter image description here

这是我用来测试boost的代码:

#include <boost/asio.hpp> // include boost
#include <iostream>
using namespace std;
using namespace boost::asio;  // save tons of typing

// These are the values our port needs to connect
#ifdef _WIN32
// windows uses com ports, this depends on what com port your cable is plugged in to.
const char *PORT = "COM4";
#else
// *nix com ports
const char *PORT = "dev/ttyS3";
#endif
// Note: all the following except BAUD are the exact same as the default values

// what baud rate do we communicate at
serial_port_base::baud_rate BAUD(9600);
// how big is each "packet" of data (default is 8 bits)
serial_port_base::character_size CSIZE(8);
// what flow control is used (default is none)
serial_port_base::flow_control FLOW(serial_port_base::flow_control::none);
// what parity is used (default is none)
serial_port_base::parity PARITY(serial_port_base::parity::none);
// how many stop bits are used (default is one)
serial_port_base::stop_bits STOP(serial_port_base::stop_bits::one);

int main()
{
    // create the I/O service that talks to the serial device
    io_service io;
    // create the serial device, note it takes the io service and the port name
    serial_port port(io, PORT);

    // go through and set all the options as we need them
    // all of them are listed, but the default values work for most cases
    port.set_option(BAUD);
    port.set_option(CSIZE);
    port.set_option(FLOW);
    port.set_option(PARITY);
    port.set_option(STOP);

    // buffer to store commands
    // this device reads 8 bits, meaning an unsigned char, as instructions
    // varies with the device, check the manual first
    unsigned char command[1] = { 0 };

    // read in user value to be sent to device
    int input;
    cin >> input;

    // Simple loop, since the only good values are [0,255]
    //  break when a negative number is entered.
    // The cast will convert too big numbers into range.
    while (input >= 0)
    {
        // convert our read in number into the target data type
        command[0] = static_cast<unsigned char>(input);

        // this is the command that sends the actual bits over the wire
        // note it takes a stream and a asio::buffer
        // the stream is our serial_port
        // the buffer is constructed using our command buffer and
        //  the number of instructions to send
        write(port, buffer(command, 1));

        // read in the next input value
        cin >> input;
    }

    // all done sending commands
    return 0;
}

我的错误(我无法提供任何信息,因为我不知道是什么意思或导致它们的原因):

1   IntelliSense: identifier "WSA13" is undefined   c:\libs\boost\boost_1_55_0\boost\asio\error.hpp 70  19  Test3
2   IntelliSense: identifier "WSA102" is undefined  c:\libs\boost\boost_1_55_0\boost\asio\error.hpp 73  34  Test3
3   IntelliSense: identifier "WSA100" is undefined  c:\libs\boost\boost_1_55_0\boost\asio\error.hpp 76  20  Test3
4   IntelliSense: identifier "WSA113" is undefined  c:\libs\boost\boost_1_55_0\boost\asio\error.hpp 79  23  Test3
5   IntelliSense: identifier "WSA103" is undefined  c:\libs\boost\boost_1_55_0\boost\asio\error.hpp 82  21  Test3
6   IntelliSense: identifier "WSA106" is undefined  c:\libs\boost\boost_1_55_0\boost\asio\error.hpp 90  24  Test3
7   IntelliSense: identifier "WSA107" is undefined  c:\libs\boost\boost_1_55_0\boost\asio\error.hpp 93  24  Test3
8   IntelliSense: identifier "WSA108" is undefined  c:\libs\boost\boost_1_55_0\boost\asio\error.hpp 96  22  Test3
9   IntelliSense: identifier "WSA9" is undefined    c:\libs\boost\boost_1_55_0\boost\asio\error.hpp 99  20  Test3
10  IntelliSense: identifier "WSA14" is undefined   c:\libs\boost\boost_1_55_0\boost\asio\error.hpp 102 11  Test3
11  IntelliSense: identifier "WSA110" is undefined  c:\libs\boost\boost_1_55_0\boost\asio\error.hpp 105 22  Test3
12  IntelliSense: identifier "WSA112" is undefined  c:\libs\boost\boost_1_55_0\boost\asio\error.hpp 108 17  Test3
13  IntelliSense: identifier "WSA4" is undefined    c:\libs\boost\boost_1_55_0\boost\asio\error.hpp 111 17  Test3
14  IntelliSense: identifier "WSA22" is undefined   c:\libs\boost\boost_1_55_0\boost\asio\error.hpp 114 22  Test3
15  IntelliSense: identifier "WSA115" is undefined  c:\libs\boost\boost_1_55_0\boost\asio\error.hpp 117 18  Test3
16  IntelliSense: identifier "WSA38" is undefined   c:\libs\boost\boost_1_55_0\boost\asio\error.hpp 120 19  Test3
17  IntelliSense: identifier "WSA116" is undefined  c:\libs\boost\boost_1_55_0\boost\asio\error.hpp 123 18  Test3
18  IntelliSense: identifier "WSA117" is undefined  c:\libs\boost\boost_1_55_0\boost\asio\error.hpp 126 19  Test3
19  IntelliSense: identifier "WSA118" is undefined  c:\libs\boost\boost_1_55_0\boost\asio\error.hpp 129 25  Test3
20  IntelliSense: identifier "WSA24" is undefined   c:\libs\boost\boost_1_55_0\boost\asio\error.hpp 132 20  Test3
21  IntelliSense: identifier "WSA119" is undefined  c:\libs\boost\boost_1_55_0\boost\asio\error.hpp 135 21  Test3
22  IntelliSense: identifier "WSA123" is undefined  c:\libs\boost\boost_1_55_0\boost\asio\error.hpp 148 24  Test3
23  IntelliSense: identifier "WSA126" is undefined  c:\libs\boost\boost_1_55_0\boost\asio\error.hpp 151 19  Test3
24  IntelliSense: identifier "WSA128" is undefined  c:\libs\boost\boost_1_55_0\boost\asio\error.hpp 154 16  Test3
25  IntelliSense: identifier "WSA130" is undefined  c:\libs\boost\boost_1_55_0\boost\asio\error.hpp 162 29  Test3
26  IntelliSense: identifier "WSA138" is undefined  c:\libs\boost\boost_1_55_0\boost\asio\error.hpp 168 15  Test3
27  IntelliSense: identifier "WSA140" is undefined  c:\libs\boost\boost_1_55_0\boost\asio\error.hpp 176 17  Test3
28  IntelliSense: identifier "WSA11001L" is undefined   c:\libs\boost\boost_1_55_0\boost\asio\error.hpp 182 20  Test3
29  IntelliSense: identifier "WSA11002L" is undefined   c:\libs\boost\boost_1_55_0\boost\asio\error.hpp 185 30  Test3
30  IntelliSense: identifier "WSA11004L" is undefined   c:\libs\boost\boost_1_55_0\boost\asio\error.hpp 188 13  Test3
31  IntelliSense: identifier "WSA11003L" is undefined   c:\libs\boost\boost_1_55_0\boost\asio\error.hpp 191 17  Test3
32  IntelliSense: identifier "BOOST_ASIO_OS_DEF_0x00000002" is undefined    c:\libs\boost\boost_1_55_0\boost\asio\ip\resolver_query_base.hpp    66  22  Test3
33  IntelliSense: identifier "BOOST_ASIO_OS_DEF_0x00000001" is undefined    c:\libs\boost\boost_1_55_0\boost\asio\ip\resolver_query_base.hpp    67  15  Test3
34  IntelliSense: identifier "BOOST_ASIO_OS_DEF_0x00000004" is undefined    c:\libs\boost\boost_1_55_0\boost\asio\ip\resolver_query_base.hpp    68  20  Test3
35  IntelliSense: identifier "BOOST_ASIO_OS_DEF_0x00000008" is undefined    c:\libs\boost\boost_1_55_0\boost\asio\ip\resolver_query_base.hpp    69  23  Test3
36  IntelliSense: identifier "BOOST_ASIO_OS_DEF_0x00000800" is undefined    c:\libs\boost\boost_1_55_0\boost\asio\ip\resolver_query_base.hpp    70  17  Test3
37  IntelliSense: identifier "BOOST_ASIO_OS_DEF_0x00000100" is undefined    c:\libs\boost\boost_1_55_0\boost\asio\ip\resolver_query_base.hpp    71  20  Test3
38  IntelliSense: identifier "BOOST_ASIO_OS_DEF_0x00000400" is undefined    c:\libs\boost\boost_1_55_0\boost\asio\ip\resolver_query_base.hpp    72  26  Test3
39  IntelliSense: identifier "BOOST_ASIO_OS_DEF_0" is undefined c:\libs\boost\boost_1_55_0\boost\asio\ip\multicast.hpp  51  3   Test3
40  IntelliSense: identifier "BOOST_ASIO_OS_DEF_12" is undefined    c:\libs\boost\boost_1_55_0\boost\asio\ip\multicast.hpp  52  3   Test3
41  IntelliSense: identifier "BOOST_ASIO_OS_DEF_13" is undefined    c:\libs\boost\boost_1_55_0\boost\asio\ip\multicast.hpp  80  3   Test3
42  IntelliSense: identifier "BOOST_ASIO_OS_DEF_9" is undefined c:\libs\boost\boost_1_55_0\boost\asio\ip\multicast.hpp  108 3   Test3
43  IntelliSense: identifier "BOOST_ASIO_OS_DEF_10" is undefined    c:\libs\boost\boost_1_55_0\boost\asio\ip\multicast.hpp  144 3   Test3
44  IntelliSense: identifier "BOOST_ASIO_OS_DEF_11" is undefined    c:\libs\boost\boost_1_55_0\boost\asio\ip\multicast.hpp  181 3   Test3
45  IntelliSense: identifier "BOOST_ASIO_OS_DEF_0x0001" is undefined    c:\libs\boost\boost_1_55_0\boost\asio\ip\tcp.hpp    126 37  Test3
46  IntelliSense: identifier "BOOST_ASIO_OS_DEF_0" is undefined c:\libs\boost\boost_1_55_0\boost\asio\ip\unicast.hpp    59  3   Test3
47  IntelliSense: identifier "BOOST_ASIO_OS_DEF_4" is undefined c:\libs\boost\boost_1_55_0\boost\asio\ip\unicast.hpp    60  3   Test3

最佳答案

来自Boost 1.55 release notes :

Known Bugs with Visual Studio 2013/Visual C++ 12

Visual Studio 2013 was released quite late in the release process, so there exist several unresolved issues. These include:

- Serialization can't compile because of a missing include.

- Using has_member_function_callable_with from Boost.Container's allocator_traits causes a compile error (#9332).

- In libraries such as Unordered and MultiIndex, calling overloaded functions with initializer lists can result in a compile error, with Visual C++ claiming that the overloads are ambiguous. This is a Visual C++ bug and it isn't clear if there's a good workaround. This won't affect code that doesn't use initializer lists, or uses an initializer list that doesn't require an implicit conversion (i.e. an initializer list of the container's exact value type).

- Thread: ex_scoped_thread compile fails (#9333).

请注意,VC++ 12 并未得到完全支持,即使 Boost 可以编译也不一定意味着它不会有运行时错误(遗憾的是,这意味着您必须为它们制定变通办法) .如果您在 Boost 中发现更多错误,be sure to report it to them .

关于c++ - Boost 1.55 不适用于 Visual Studio 2013,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20534622/

相关文章:

c++ - 内存使用估计

c# - 隐藏 C# XML 文档

c++ - 不允许在 C++ 中将对 const 的指针/引用指向临时对象(无 C++0X)

c++ - 在 ubuntu 10.04 下安装最新的 1.44 boost 库

c++ - qmake 为 win32-g++ 平台生成的 Makefile 包含 unix 命令

c++ - 如果运算符删除没有实现,为什么不能编译

c# - 用于在解决方案中快速搜索文件的 Visual Studio 插件

sql - 如何在 Visual Studio 2017 中打开数据库图表

c++ - 使用 Boost 解析后在 JSON 文件中查找重复项

c++ - 为什么没有链接的名称可以在其他作用域中访问?