繁体   English   中英

在Debian 8.3 ARM上构建Boost单元测试框架

[英]Building Boost unit test framework on Debian 8.3 ARM

我正在尝试将较大的项目移植到嵌入式Linux系统(Debian 8.3 ARM)。 该项目需要比系统Synaptic更新的Boost库(1.55与1.58),因此我需要从源代码构建Boost。 通常,我选择的是最新版本,即两周前下载内容时的最新版本为1.60(当前为1.61)。

该项目包含需要boost_unit_test_framework 从Boost文档中,我认为调用(来自未压缩的源目录)应为

./bootstrap.sh --prefix=/home/tinyt/b160_clang \
--with-libraries=system,thread,<more lbraries>,\
boost_unit_test_framework,test_exec_monitor
./b2 install toolset=clang

这应该使我在~/b160_clang提高1.60(换行符不是命令的一部分,而是在此处插入以提高可读性)。 问题在于b2无法将boost_unit_test_frameworkunit_test_framework识别为库,因此无法构建boost。 如果我只是省略该库, boost_unit_test_framework构建我的Boost库子集,但是CMake当然会失败,因为它的boost_unit_test_framework要求未得到满足。

我还应该包括其他库吗? 库的顺序重要吗? 我是否应该一路链接到ar?

CMake通常看起来还可以,我在该项目的构建环境是x86 Debian 8.3机器,一切正常。 区别在于这里有足够的空间来进行完整安装。

运行clang 3.5和CMake 3.0.2,与功能桌面系统相同。 嵌入式目标系统上很可能没有足够的空间来构建整个Boost库,并且没有足够的空间供我的项目应用程序使用。

我是否缺少boost_unit_test_framework其他依赖boost_unit_test_framework 如何指定要安装的库是否有问题? 单元测试框架是仅标头的,所以我可以手动复制标头吗?

任何建议表示赞赏。 谢谢!

编辑:

我刚刚尝试为要构建的所有库运行bjam --prefix=/... --with-<...> 输出与以前相同:

error: wrong library name 'boost_unit_test_framework' in the --with-<library> option.

如果省略前缀boost_也是如此。

您使用错误的名称指定库。

可以跑

bjam --show-libraries

获取需要编译的库的名称列表。

例如,使用boost 1.58,我得到以下(修剪)输出:

...updated 1 target...
The following libraries require building:
    - atomic
    - chrono
    - container
    - context
    - coroutine
    - date_time
    - exception
    - filesystem
    - graph
    - graph_parallel
    - iostreams
    - locale
    - log
    - math
    - mpi
    - program_options
    - python
    - random
    - regex
    - serialization
    - signals
    - system
    - test
    - thread
    - timer
    - wave

检查一下,我可以看到有一个名为test的库。 那就是您要寻找的那个。 因此,执行构建的命令行应包含:

--with-libraries=system,thread,<more libraries>,test

看看boost bcp。 使用bcp,您可以指定所需的增强部分,而仅“构建”那些部分。 Bcp允许您将这些部分包装在单独的名称空间中,这可能很方便,具体取决于您的用例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM