首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更快地编译Boost.Test测试

更快地编译Boost.Test测试
EN

Stack Overflow用户
提问于 2011-08-10 23:09:25
回答 3查看 2.1K关注 0票数 8

我正在使用xcode (gcc)来编译我的boost测试套件,这花费了我太长的时间。

这些测试是最小的虚拟测试,但编译它们需要几秒钟(大约20秒):

代码语言:javascript
复制
#include "boost/test/included/unit_test.hpp"

BOOST_AUTO_TEST_CASE(dummy)
{
    BOOST_CHECK_EQUAL(2+2, 4);
}

BOOST_AUTO_TEST_CASE(dummyFail)
{
    BOOST_CHECK_EQUAL(2+3, 4);
}

该手册建议使用库版本来加快编译速度。然而,我担心这可能不起作用- xcode已经只重新构建了我的测试。因为目标文件已经存在,所以整个框架不会被重新编译。

我猜Boost.Test中的头文件和模板的数量占据了大部分的编译时间。

你知道如何更快地编译吗?把它当做库可以用吗?只包含boost.test的一部分会起作用吗?

任何帮助都是非常感谢的!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-08-11 04:10:46

编译速度慢的原因是因为boost/test/included/unit_test.hpp非常庞大。使用库可以加快速度,因为巨大的头文件是在构建库时编译的,而不是之后编译的。然后,您的测试包括一组较小的标头,从而缩短构建时间。

因为我懒得构建这个库,所以我使用的另一种选择是让一个源文件(它永远不会更改,因此很少重新构建)包含完整的boost测试,然后让所有真正的测试源只包含boost/test/unit_test.hpp。这提供了使用该库的大部分好处。

票数 8
EN

Stack Overflow用户

发布于 2011-08-11 00:07:08

尝试使用预编译头,这应该会减少编译时间。详情可在此处找到:http://www.boost.org/boost-build2/doc/html/bbv2/reference/precompiled_headers.html

票数 2
EN

Stack Overflow用户

发布于 2021-04-23 17:40:55

我相信所有的选项现在都在官方文档中进行了描述(参见)。

非常方便,并且大大减少了编译时间。如上所述,可以创建只包含两行代码的单个源文件,单独编译该文件,并将其与其他测试链接起来。

关于链接文档的注释。我认为该页面中有一个错误,即这里:

One和only one转换单元应包括以下行:

#定义单元测试模块名称#include

这会在链接阶段导致“未定义的引用”错误。我认为应该是:

代码语言:javascript
复制
#define BOOST_TEST_MODULE test module name
#include <boost/test/included/unit_test.hpp>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7013121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档