使用Boost Build构建libtorrent遇version.boost-build未知规则错误求助
libtorrent构建报错:rule "version.boost-build" unknown
问题描述
执行b2 install --prefix=PRIFIX构建libtorrent 2.0.7时出现如下错误:
LDFLAGS = OS = LINUX Jamfile:944: in install-paths ERROR: rule "version.boost-build" unknown in module "Jamfile</home/pavan/projects/torrents/libtorrent_install/libtorrent-2.0.7>". Jamfile:1063: in install-pkg-config Jamfile:1094: in load-aux /home/pavan/boost_install/boost_1_80_0/tools/build/src/build/project.jam:378: in load-jamfile /home/pavan/boost_install/boost_1_80_0/tools/build/src/build/project.jam:64: in load /home/pavan/boost_install/boost_1_80_0/tools/build/src/build/project.jam:142: in project.find /home/pavan/boost_install/boost_1_80_0/tools/build/src/build-system.jam:618: in load /home/pavan/boost_install/boost_1_80_0/tools/build/src/kernel/modules.jam:294: in import /home/pavan/boost_install/boost_1_80_0/tools/build/src/kernel/bootstrap.jam:135: in module scope
对应的Jamfile第944行代码为:
local boost-build-version = [ SPLIT_BY_CHARACTERS [ version.boost-build ] : "-" ] ;
相同步骤在另一台机器可正常执行,需排查遗漏的配置或步骤。
解决方法
版本兼容性适配
version.boost-build是Boost Build(b2)特定版本引入的规则,Boost 1.80.0和libtorrent 2.0.7可能存在适配问题。另一台机器大概率使用了兼容版本组合,建议:- 降级Boost到1.79.0及以下版本(libtorrent 2.0.x对该系列Boost兼容性更好)
- 升级libtorrent到支持Boost 1.80+的版本
补充模块导入语句
检查libtorrent的Jamfile中,在调用version.boost-build的代码段之前,是否存在import version ;语句。如果缺失,手动添加该导入后重新执行构建命令。清除构建缓存
执行b2 clean清理所有旧构建缓存,再重新运行b2 install --prefix=PRIFIX,避免缓存中的残留配置引发冲突。校验环境变量配置
确认当前环境中BOOST_BUILD_PATH变量指向的是Boost 1.80.0的tools/build目录,且没有系统中旧版本Boost Build的路径干扰,确保使用的是正确版本的b2工具。
内容的提问来源于stack exchange,提问作者Vemuri Pavan
相关产品推荐
相关产品推荐

