[英]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_framework
或unit_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.