【问题标题】:How can I build the Boost.Python example on Ubuntu 9.10?如何在 Ubuntu 9.10 上构建 Boost.Python 示例?
【发布时间】:2023-03-03 10:35:01
【问题描述】:

我正在使用 Ubuntu 9.10 beta,其存储库包含 boost 1.38。我想构建 hello-world 示例。我按照这里的说明(http://www.boost.org/doc/libs/1_40_0/libs/python/doc/tutorial/doc/html/python/hello.html),找到了示例项目,并发出了“bjam”命令。我已经安装了 bjam 和 boost-build。

我得到以下输出:

Jamroot:18: in modules.load
rule python-extension unknown in module Jamfile</usr/share/doc/libboost1.38-doc/examples/libs/python/example>.
/usr/share/boost-build/build/project.jam:312: in load-jamfile
/usr/share/boost-build/build/project.jam:68: in load
/usr/share/boost-build/build/project.jam:170: in project.find
/usr/share/boost-build/build-system.jam:248: in load
/usr/share/boost-build/kernel/modules.jam:261: in import
/usr/share/boost-build/kernel/bootstrap.jam:132: in boost-build
/usr/share/doc/libboost1.38-doc/examples/libs/python/example/boost-build.jam:7: in module scope

我对 Boost(这对我自己来说是一个探索性练习)了解不够多,无法理解为什么包含的 Jamroot 中的 python-extension 宏无效。我从安装目录运行这个例子,所以我没有改变 Jamroot 的 use-project 设置。

作为一个附带问题,如果我只是随便在任意目录中启动一个项目,我将如何编写我的 jamroot?

【问题讨论】:

    标签: python boost ubuntu


    【解决方案1】:

    问题来自使用 Ubuntu 包而不是从源代码编译的 boost。你必须编辑你的 Jamroot 来使用全局 libboost-python,而不是在相对 boost 源树中寻找 lib。

    总的来说,您应该在 Jamroot 的开头有这些行:

    using python ;
    lib libboost_python : : <name>boost_python ;
    project : requirements <library>libboost_python ;
    

    它被报告为 Debian 上的一个错误,并且至少在 lenny 上用 libboost-python1.40 进行了更正……主要是。 libboost_python 中的示例仍然引用 boost_python-mt 而不是 boost_python,但是 /usr/lib/libboost_python.so 存在但不存在 /usr/lib/libboost_python-mt.so。

    希望 Ubuntu 很快就会有相同的修复程序,并且下一个用户不会偶然发现这个问题...我知道您的问题的答案,因为我确实不久前遇到了完全相同的问题。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-31
    相关资源
    最近更新 更多