【问题标题】:Turtle (mock framework) compilation errorsTurtle(模拟框架)编译错误
【发布时间】:2013-10-13 05:37:51
【问题描述】:

我正在尝试在 Turtle 中编译一个简单的示例(使用 boost 单元测试框架),但在 Turtle 中出现编译错误。

我假设 Turtle 并没有真正的错误,这是我做错或不兼容的事情。

任何帮助将不胜感激。


例子:

#define BOOST_TEST_MAIN
#define BOOST_TEST_DYN_LINK

#include <boost/test/unit_test.hpp>
#include <turtle/mock.hpp>

BOOST_AUTO_TEST_CASE(trutletest){
     BOOST_CHECK(1 == 4);
}

** 我已经提炼了它,所以它甚至不使用任何 Turtle 功能,只是包含它会导致错误。

我得到的错误:

In file included from ../turtle/include/turtle/detail/../matcher.hpp:14,
                 from ../turtle/include/turtle/detail/function.hpp:16,
                 from ../turtle/include/turtle/detail/functor.hpp:12,
                 from ../turtle/include/turtle/reset.hpp:14,
                 from ../turtle/include/turtle/mock.hpp:14,
                 from test.cpp:5:
../turtle/include/turtle/detail/../detail/is_functor.hpp:22: error: expected constructor, destructor, or type conversion before ‘(’ token
In file included from ../turtle/include/turtle/detail/function.hpp:16,
                 from ../turtle/include/turtle/detail/functor.hpp:12,
                 from ../turtle/include/turtle/reset.hpp:14,
                 from ../turtle/include/turtle/mock.hpp:14,
                 from test.cpp:5:
../turtle/include/turtle/detail/../matcher.hpp:87: error: ‘is_functor’ is not a member of ‘mock::detail’
../turtle/include/turtle/detail/../matcher.hpp:87: error: ‘is_functor’ is not a member of ‘mock::detail’
../turtle/include/turtle/detail/../matcher.hpp:87: error: template argument 1 is invalid
../turtle/include/turtle/detail/../matcher.hpp:88: error: template argument 3 is invalid
../turtle/include/turtle/detail/../matcher.hpp:89: error: expected unqualified-id before ‘>’ token

编译行: g++ test.cpp -o test -I ../turtle/include/ -lboost_unit_test_framework

我正在使用: g++ (GCC) 4.4.6 20120305 (红帽 4.4.6-4) 海龟 1.2.4

【问题讨论】:

  • 您是否尝试过这样做(来自海龟介绍)而不是您的宏和包含? #define BOOST_AUTO_TEST_MAIN #include &lt;boost/test/auto_unit_test.hpp&gt; #include &lt;turtle/mock.hpp&gt;
  • @biocomp,它不会改变任何东西,感谢您的尝试。
  • 它适用于 g++ 4.8.1、turtle 1.2.4 和 boost 1.54.0。您使用的是哪个版本的 boost?
  • @cv_and_he,我确实使用的是旧版本的 boost (1.4.1),升级解决了这个问题,非常感谢。 (如果您想将此添加为答案而不仅仅是评论,我会接受)。 :)

标签: c++ unit-testing boost turtle-mock


【解决方案1】:

正如 cv_and_he 评论的那样,问题出在使用旧的 bo​​ost 版本。
更新到最新的 boost (1.54.0) 解决了这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-10
    • 2015-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-14
    • 1970-01-01
    相关资源
    最近更新 更多