我使用的是Ubuntu 9.10测试版,它的存储库包含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?
发布于 2009-11-08 06:30:58
这个问题来自于使用Ubuntu包而不是从源代码编译的boost。您必须编辑您的Jamroot,使其使用全局libboost python,而不是在相对的boost源码树中查找lib。
简而言之,在Jamroot的开头应该有以下几行:
using python ;
lib libboost_python : : <name>boost_python ;
project : requirements <library>libboost_python ;它在Debian上被报道为一个bug,并且至少在lenny上用libboost-python1.40 ...mostly进行了修正。libboost_python中的示例仍然引用boost_python-mt而不是boost_python,但是/usr/lib/libboostpython.so存在,而不是/usr/lib/libboost_python mt.so。
希望Ubuntu很快就会有同样的修复,下一位用户不会在这个问题上出错……我知道你的问题的答案,因为我不久前遇到了完全相同的问题。
https://stackoverflow.com/questions/1569490
复制相似问题