1

我正在尝试构建一个同时使用 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 一词发生冲突,我认为它是独立的。

为了对 boost 构建问题做出一个清晰简单的示例,我使用了 websocketpp 示例:echo_server.cpp,我在其中添加了以下内容:

#include "stdafx.h" 

Boost lib 包括 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 标头包括。添加这 2 个 boostinclude 会触发构建错误。如果我注释掉这 2 个包含,它的构建不会出现错误:

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

关于如何处理升压问题的任何建议?

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

4

1 回答 1

0

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

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

于 2013-01-25T06:33:22.610 回答