繁体   English   中英

如何在Ubuntu 9.10上构建Boost.Python示例?

[英]How can I build the Boost.Python example on Ubuntu 9.10?

我正在使用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?

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

总而言之,你应该在Jamroot的开头有这些行:

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

它被报道为Debian上的一个错误,并且至少在使用libboost-python1.40的lenny上进行了修正......大多数情况下。 libboost_python中的示例仍然引用boost_python-mt而不是boost_python,但是/usr/lib/libboost_python.so存在但不存在/usr/lib/libboost_python-mt.so。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM