c++ - 在 Windows 上使用 websocketpp 和 MySQL boost 构建错误

标签 c++ mysql visual-studio-2010 boost websocket

我正在尝试构建一个同时使用 websocketpp 和 MySQL 的 C++ 应用程序。我在使用 VS 2010 C++ Express 时遇到了 2 个构建问题。

1) boost 库有问题。它会产生许多这样的错误:

 1>c:\program files (x86)\boost\boost_1_50\boost\thread\win32\thread_data.hpp(210): error C2146: syntax error : missing ')' before identifier 'rel_time'

这是 thread_data.hpp 中从第 210 行开始的相关片段:

inline BOOST_SYMBOL_VISIBLE void sleep(TimeDuration const& rel_time)
    {
        interruptible_wait(detail::pin_to_zero(rel_time.total_milliseconds()));
    }

2) 与记录在案的 VERSION 一词发生冲突 here我相信是独立的。

为了清楚和简单地说明 boost 构建问题,我使用了 websocketpp 示例:echo_server.cpp我添加的这些包括:

#include "stdafx.h" 

Boost 库包括 websocketpp 站点上“使用 websocketpp 构建程序”推荐的内容。

#include <boost/regex.hpp>
#include <boost/random.hpp> 
#include <boost/system/api_config.hpp>
#include <boost/system/config.hpp>
#include <boost/system/error_code.hpp>
#include <boost/system/system_error.hpp>
#include <boost/system/windows_error.hpp>

MySQL header 包括。添加这 2 个 boostincludes 会触发构建错误。如果我注释掉这 2 个包含,它会正确构建:

#include <my_global.h>
#include <mysql.h>

关于如何处理 boost 问题有什么建议吗?

我不认为这是同一个构建问题,“尝试使用 MinGW 构建 websocket++:最后几个链接器错误——它可能是什么?”

最佳答案

关于第一个错误,检查是否有任何宏干扰代码。右键单击并转到定义或自己在文件开头 #define 宏,然后查看它在哪里被重新定义。在非常困难的情况下,通过编译器标志查看预处理器输出。

关于其余部分,您不提供 Boost 和 MySQL 的任何版本。然后是 my_global.h(或者是 MySQL 的一部分?)和 stdafx.h,它们都在您的控制之下,但您没有在这里显示它们。此外,尝试将问题减少到尽可能小的代码段。简而言之,提供一个可重现的例子。

关于c++ - 在 Windows 上使用 websocketpp 和 MySQL boost 构建错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14514796/

相关文章:

c++ - 如何从 OpenSSL 释放 SSL 连接?

php - 在没有cron的情况下运行php脚本来进行自动数据库备份

c++ - 无论如何让 Visual Studio C++ 自动完成参数列表?

c++ - c++ - 如何在没有lua绑定(bind)的情况下将成员函数注册到lua

c++ - 使用迭代器位置的线性和二进制搜索

c++ - 如何将 Clang AST 中的 TemplateTypeParm 节点与 AST_Matchers 匹配?

mysql - 使用 Perl DBI Mysql 在查询中获取最大行字符长度

mysql - MySQL表的简单分解

Qt 和 std::bind

c# - 如何让 Intellisense 自动解决缺少的 Using 指令