【问题标题】:Boost example doesn't compile on VS2010?Boost 示例无法在 VS2010 上编译?
【发布时间】:2011-10-24 17:45:21
【问题描述】:

我试图从网站上获得一个提升示例来工作:

http://www.boost.org/doc/libs/1_47_0/doc/html/boost_asio/example/http/client/async_client.cpp

但每当我构建并尝试执行时,我不断从 VS2010 获得以下信息:

1>------ Build started: Project: highfreqdemo, Configuration: Debug Win32 ------
1>Build started 24/10/2011 18:41:08.
1>InitializeBuildStatus:
1>  Touching "Debug\highfreqdemo.unsuccessfulbuild".
1>ClCompile:
1>  All outputs are up-to-date.
1>  highfreqdemo.cpp
1>c:\users\x\documents\visual studio 2010\projects\highfreqdemo\highfreqdemo\highfreqdemo.cpp(4): warning C4627: '#include <iostream>': skipped when looking for precompiled header use
1>          Add directive to 'StdAfx.h' or rebuild precompiled header
1>c:\users\x\documents\visual studio 2010\projects\highfreqdemo\highfreqdemo\highfreqdemo.cpp(5): warning C4627: '#include <istream>': skipped when looking for precompiled header use
1>          Add directive to 'StdAfx.h' or rebuild precompiled header
1>c:\users\x\documents\visual studio 2010\projects\highfreqdemo\highfreqdemo\highfreqdemo.cpp(6): warning C4627: '#include <ostream>': skipped when looking for precompiled header use
1>          Add directive to 'StdAfx.h' or rebuild precompiled header
1>c:\users\x\documents\visual studio 2010\projects\highfreqdemo\highfreqdemo\highfreqdemo.cpp(7): warning C4627: '#include <string>': skipped when looking for precompiled header use
1>          Add directive to 'StdAfx.h' or rebuild precompiled header
1>c:\users\x\documents\visual studio 2010\projects\highfreqdemo\highfreqdemo\highfreqdemo.cpp(8): warning C4627: '#include <boost/asio.hpp>': skipped when looking for precompiled header use
1>          Add directive to 'StdAfx.h' or rebuild precompiled header
1>c:\users\x\documents\visual studio 2010\projects\highfreqdemo\highfreqdemo\highfreqdemo.cpp(9): warning C4627: '#include <boost/bind.hpp>': skipped when looking for precompiled header use
1>          Add directive to 'StdAfx.h' or rebuild precompiled header
1>c:\users\x\documents\visual studio 2010\projects\highfreqdemo\highfreqdemo\highfreqdemo.cpp(199): fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "StdAfx.h"' to your source?
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:00.76
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

我有点不确定到底该怎么做才能解决这个问题?

【问题讨论】:

    标签: c++ visual-studio-2010 visual-c++ boost


    【解决方案1】:
    Add directive to 'StdAfx.h' or rebuild precompiled header
    

    您的项目配置了预编译头文件支持,但您的源文件中没有包含预编译头文件。

    预编译的头文件(在本例中为 StdAfx.h)需要包含在配置为使用预编译头的每个源文件的最顶部。

    要么包含此文件,要么禁用预编译头文件(在项目属性中,在 C/C++ -> Precompiled Headers 下,将 Precompiled Header 属性设置为“Not Using Precompiled Headers”;这也可以为单个源文件设置) .

    【讨论】:

    • 你会在这里推荐什么?不使用预编译头文件有什么缺点?我不完全确定我理解后果
    • 预编译头文件用于提高编译性能。如果您有一个小项目,则不需要它们。最好的选择是从不包含默认预编译头文件的空白项目模板创建一个新项目,然后从那里开始。
    【解决方案2】:

    警告和错误非常清楚;在包含标准头和 Boost 头之前,您需要将 #include "StdAfx.h" 添加到您的 highfreqdemo.cpp 文件中。

    【讨论】:

    • 我不理解错误的原因是因为我认为这个例子可以“开箱即用”
    猜你喜欢
    • 2011-12-30
    • 2011-07-23
    • 1970-01-01
    • 2018-03-12
    • 1970-01-01
    • 1970-01-01
    • 2017-05-09
    • 2017-03-26
    • 1970-01-01
    相关资源
    最近更新 更多