首页 > 解决方案 > C++ 和 Python 与 BOOST 的链接;错误 = 模块“xml”中的规则“版权”未知

问题描述

我正在尝试使用 BOOST 执行 C++ 和 Python 的链接。

使用https://www.boost.org/doc/libs/1_63_0/libs/python/doc/html/tutorial/tutorial/hello.html#tutorial.hello.let_s_jam中的示例,并在 ~/libs/发出bjam python/example/tutorial/ 其中包含这些文件:

hello.cpp  hello.py  Jamfile

控制台错误的读数是:

/home/benjamin/boost/boost_1_71_0/tools/build/src/tools/types/xml.jam:12: 
in load ERROR: rule "Copyright" unknown in module "xml".

这是我为解决这个问题而采取的措施:

  1. 我使用目录 /boost/boost_1_71_0/ 中的 ./b2 文件从 boost_1_71_0.tar.bz2 构建了 boost,日期为 2019 年 11 月 14 日。

  2. 我的 Ubuntu 18.04 系统在 /usr/bin/b2 -> bjam 有一个 b2 链接,该链接较旧(2018 年 3 月 6 日)和 bjam 文件(2018 年 3 月 6 日)。

  3. 系统上不存在其他 bjam 文件。

  4. bjam for boost 1.54,我尝试:

    sudo-apt 安装 bjam

    错误:E:包“bjam”没有安装候选。

  5. user-config.jam 文件中的所有程序(例如,c++、msvc/code、python3)都是正确的,位于我的/home/benjamin/boost/boost_1_71_0/tools/build/example/。

为了怜悯和帮助我(新手),请指教。

标签: c++python-3.xboostubuntu-18.04bjam

解决方案


查看错误消息,似乎错误与文件有关/home/benjamin/boost/boost_1_71_0/tools/build/src/tools/types/xml.jam

我检查了我的本地安装(即 boost 1.65.1),但我无法找到任何名称为xml.jam. 但我.jam在 location 几乎没有其他文件/usr/share/boost-build/src/tools/types/。例如

asm.jam

# Copyright Craig Rodrigues 2005. Distributed under the Boost
# Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
type ASM : s S asm ;

所以看起来你的 xml.jam 要么无效,要么应该注释几行(如上面的文件)。

尝试以下选项。

  1. 检查您的xml.jam,如果有任何不相关的内容,jam那么您应该注释掉信息。
  2. 将您的重命名xml.jamxml.jam.bkp. 可能不需要此文件。(在我的 boost 1.65.1 中不需要)
  3. 尝试从 Ubuntu 包管理器安装所有内容并使用它。您可以通过sudo apt install libboost-all-dev. 我从包管理器中尝试了https://github.com/boostorg/python/tree/develop/example代码和本地安装的 boost (1.65.1),它工作正常。

推荐阅读