从开始到结束
现在你要做的第一件事是构建Hello World模块并在Python中自己尝试。 在本节中,我们将概述实现这一目标所需的步骤。 我们将使用与每个boost发行版捆绑在一起的构建工具: bjam 。
注意 | |
---|---|
建筑没有bjam 除了bjam之外,当然还有其他方法可以构建你的模块。 这里写的不应该被视为“唯一的方式”。 除了 但请注意,Boost.Python的首选构建工具是bjam。 有很多方法可以错误地设置构建。 经验表明,90%的“我无法构建Boost.Python”问题来自于必须使用不同工具的人。 |
我们将跳过细节。 我们的目标是简单地创建hello world模块并在Python中运行它。 在这个简短的bjam教程之后,我们应该构建DLL并使用扩展来运行python程序。
教程示例可以在以下目录中找到: libs/python/example/tutorial
。 在那里,你可以找到:
- HELLO.CPP
- hello.py
- Jamroot中
hello.cpp
文件是我们的C ++ hello world示例。 Jamroot
是一个极简主义的bjam脚本,为我们构建DLL。 最后, hello.py
是我们的Python程序,它使用hello.cpp
的扩展。
在其他任何事情之前,您应该在boost目录中或路径中的某个位置具有bjam可执行文件,以便可以在命令行中执行bjam
。 预构建的Boost.Jam可执行文件适用于大多数平台。
人生苦短,请用Python!
是我们的简约Jamroot文件。 只需复制文件并将use-project boost
调整到您的boost根目录所在的位置即可。
上面的Jamrules文件中包含的注释应足以让您前进。
运行bjam
bjam使用操作系统的命令行解释器运行。
启动它。
主目录中名为user-config.jam的文件用于配置工具。 在Windows中,可以通过键入以下命令找到您的主目录:
ECHO%HOMEDRIVE %% HOMEPATH%
进入命令提示符窗口。 您的文件至少应该具有编译器和python安装的规则。 Windows上的一个具体示例是:
# MSVC configuration
using msvc : 8.0 ;
# Python configuration
using python : 2.4 : C:dev/tools/Python ;
第一条规则告诉Bjam使用MSVC 8.0编译器和相关工具。 第二条规则提供有关Python,其版本及其所在位置的信息。 以上假设Python安装在C: dev/tools\/Python
。 如果你的平台有一个相当“标准”的python安装,你可能不需要这样做。
现在我们准备好了...一定要cd
到libs/python/example/tutorial
,其中教程"hello.cpp"
和"Jamroot"
。
最后:
bjam
它现在应该建立:
cd C:\dev\boost\libs\python\example\tutorial
bjam
...patience...
...found 1101 targets...
...updating 35 targets...
等等......最后:
Creating library path-to-boost_python.dll
Creating library /path-to-hello_ext.exp/
**passed** ... hello.test
...updated 35 targets...
或类似的东西。 如果一切顺利,您现在应该构建DLL并运行Python程序。
去吧.....玩得开心!
注意事项:
1、默认情况下,python库是动态链接的,需要定义一个静态链接的宏,BOOST_PYTHON_STATIC_LIB
否则会报: fatal error LNK1104: 无法打开文件“boost_python-vc140-mt-gd-1_61.lib”