c++ - 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".
这是我为解决这个问题而采取的措施:
我使用目录 /boost/boost_1_71_0/ 中的 ./b2 文件从 boost_1_71_0.tar.bz2 构建了 boost,日期为 2019 年 11 月 14 日。
我的 Ubuntu 18.04 系统在 /usr/bin/b2 -> bjam 有一个 b2 链接,该链接较旧(2018 年 3 月 6 日)和 bjam 文件(2018 年 3 月 6 日)。
系统上不存在其他 bjam 文件。
从bjam for boost 1.54,我尝试:
sudo-apt 安装 bjam
错误:E:包“bjam”没有安装候选。
user-config.jam 文件中的所有程序(例如,c++、msvc/code、python3)都是正确的,位于我的/home/benjamin/boost/boost_1_71_0/tools/build/example/。
为了怜悯和帮助我(新手),请指教。
解决方案
查看错误消息,似乎错误与文件有关/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 要么无效,要么应该注释几行(如上面的文件)。
尝试以下选项。
- 检查您的
xml.jam
,如果有任何不相关的内容,jam
那么您应该注释掉信息。 - 将您的重命名
xml.jam
为xml.jam.bkp
. 可能不需要此文件。(在我的 boost 1.65.1 中不需要) - 尝试从 Ubuntu 包管理器安装所有内容并使用它。您可以通过
sudo apt install libboost-all-dev
. 我从包管理器中尝试了https://github.com/boostorg/python/tree/develop/example代码和本地安装的 boost (1.65.1),它工作正常。