建设与提升asio

时间:2013-02-12 11:29:46

标签: visual-studio-2010 windows-xp boost-asio

我正在尝试使用Visual Studio 2010在Windows XP上构建项目 使用boost版本1.53.0(这应该很重要,将解释)

erros与socket_option.hpp中的类相关:

template <int Level, int Name>
class boolean
{

正如我上面提到的,这个类没有从boost 1.35.0中的第一版asio改变

我收到这些错误:

D:\work\extern\include\boost/asio/detail/socket_option.hpp(34): error C2332: 'class' : missing tag name
D:\work\extern\include\boost/asio/detail/socket_option.hpp(34): error C3306: 'boost::asio::detail::socket_option::': unnamed class template is not allowed
D:\work\extern\include\boost/asio/detail/socket_option.hpp(34): error C2628: 'boost::asio::detail::socket_option::' followed by 'int' is illegal (did you forget a ';'?)
D:\work\extern\include\boost/asio/detail/socket_option.hpp(35): error C2143: syntax error : missing ';' before '{'
D:\work\extern\include\boost/asio/detail/socket_option.hpp(35): error C2447: '{' : missing function header (old-style formal list?)

也会在该类的使用中产生更多错误

1 个答案:

答案 0 :(得分:0)

确保您引用了正确的Boost包含。这可以从Visual Studio中完成,方法是从项目菜单中选择属性,或者从解决方案资源管理器中右键单击项目并选择属性。选择C / C ++并在其他包含目录下输入安装Boost的路径。在我使用Visual Studio 2008的系统上,我在我的C:\ Program Files路径下安装了Boost 1.52.0。所以,这就是我的系统上的设置:

C:\ Program Files \ boost_1_52_0 \;

如果您也使用OpenSSL,则还需要指定安装位置的路径。在我的系统上,它看起来像这样:

C:\ Users \ Bob \ Documents \ Visual Studio 2008 \ Projects \ Win32Client \ OpenSSL-Win32 \ include \; C:\ Users \ Bob \ Documents \ Visual Studio 2008 \ Projects \ Win32Client \ OpenSSL-Win32 \ include \ openssl \;

您还需要指定库路径,以便链接器能够正确构建。因此,在“属性”对话框中,选择“链接器”,然后在“其他库目录”下,输入正确的lib文件夹的路径。在我的系统上看起来像:

C:\ Program Files \ boost_1_52_0 \ lib32 \;

如果使用SSL,您还需要:

C:\ Users \ Bob \ Documents \ Visual Studio 2008 \ Projects \ Win32Client \ OpenSSL-Win32 \ lib \ VC \ static;

libeay32MDd.lib ssleay32MDd.lib

在链接器/输入部分下输入。

我无法通过Boost使用64位版本的OpenSSL库构建,并且已经提交了错误报告。 32位版本虽然很好。