Can';t运行bjam编译boostpython教程 我试图跟踪Python的包的C++代码。我安装了Python。下载了最新版本的Boost(1Y55)。首先我运行BooTrasp.BAT来构建BJAM.Ex.NeXT,我配置了BooSty11x55,0\Too\\Buave\User-Stutix.CAMP,使用MVC10编译器,并添加了Python安装的路径。 现在,根据教程:

Can';t运行bjam编译boostpython教程 我试图跟踪Python的包的C++代码。我安装了Python。下载了最新版本的Boost(1Y55)。首先我运行BooTrasp.BAT来构建BJAM.Ex.NeXT,我配置了BooSty11x55,0\Too\\Buave\User-Stutix.CAMP,使用MVC10编译器,并添加了Python安装的路径。 现在,根据教程:,c++,python,boost,C++,Python,Boost,现在我们准备好了。。。请确保cd到libs/python/example/tutorial 教程“hello.cpp”和“Jamroot”所在的位置 最后: 比亚姆 尝试在该目录中运行bjam时会出现“bjam未被识别为内部或外部命令”错误。我在这里遗漏了什么?user-config.jam应该驻留在另一个位置吗?还是将bjam添加到系统路径 更新: 好的。多亏了@john,我不得不将bjam添加到系统路径。但是现在,运行它,hello_ext.lib是在\boost\u 1\u 55\u 0\

现在我们准备好了。。。请确保cd到libs/python/example/tutorial 教程“hello.cpp”和“Jamroot”所在的位置

最后:

比亚姆

尝试在该目录中运行bjam时会出现“bjam未被识别为内部或外部命令”错误。我在这里遗漏了什么?user-config.jam应该驻留在另一个位置吗?还是将bjam添加到系统路径

更新:

好的。多亏了@john,我不得不将bjam添加到系统路径。但是现在,运行它,hello_ext.lib是在\boost\u 1\u 55\u 0\libs\python\example\tutorial\bin\msvc-11.0\debug中创建的。根据教程,我应该得到扩展名的DLL文件。现在,我不确定Python如何与扩展链接,但是如果我假设它确实像C++,那么它应该与HeloLo.Ext.LIB链接,但是如果运行:

python hello.py

其中包含从扩展导入的方法,python运行时崩溃。没有关于此工作流的全面教程吗?Boost doc对此非常糟糕。

这对我很有用:

1.)解压缩boost_1_55_0.zip

2.)准备使用Boost库二进制文件

转到boost_1_55_0根目录,打开命令提示符并键入以下命令:

Bootstrap
.\b2
3.)查找user-config.jam:

在命令提示符中键入以下内容:

ECHO %HOMEDRIVE%%HOMEPATH%
4.)如果user-config.jam位于您的homedrive目录中,请按如下所示更改它:

注意:

.jam语言将“空白”视为参数的分隔

# -------------------
# MSVC configuration.
# -------------------

# Configure msvc (default version, searched for in standard locations and PATH).
# using msvc ;

# Configure specific msvc version (searched for in standard locations and PATH).
using msvc : 10.0 : C:\\app\\tools\\MSVisualStudio2010\\VC\\bin\\cl.exe ;

….

# ---------------------
# Python configuration.
# ---------------------

# Configure specific Python version.
# using python : 3.1 : /usr/bin/python3 : /usr/include/python3.1 : /usr/lib ;

using python 
    : 2.5                   # Version
    : C:\\app\\tools\\Python25\\python.exe      # Python Path
    : C:\\app\\tools\\Python25\\include         # include path
    : C:\\app\\tools\\Python25\\libs            # lib path(s)
    : <define>BOOST_ALL_NO_LIB=1
    ;
6.)将user-config.jam复制到\boost\u 1\u 55\u 0\libs\python\example\tutorial 7.)进一步转到\boost\u 1\u 55\u 0\stage\lib\

将libboost_python-vc100-mt-gd-1_55.lib重命名为boost_python-vc100-mt-gd-1_55.lib并将其复制到

\boost_1_55_0\libs\python\example\tutorial
8.)现在您应该将所有这些文件都放在\boost\u 1\u 55\u 0\libs\python\example\tutorial目录中

hello.cpp
hello.py
user-config.jam
Jamroot
boost_python-vc100-mt-gd-1_55.lib
bjam.exe
9.)在\boost\u 1\u 55\u 0\libs\python\example\tutorial中打开命令提示符

然后键入以下命令:

bjam
10.)成功建造后

您应该将此文件保存在以下目录中:

hello_ext.dll
将此文件重命名为:

hello_ext.pyd

大概bjam不在你的路上。使用系统控制面板将包含bjam的目录添加到您的路径中。这并不能真正帮助您创建bjam,但我通常会设法避免在unix上使用bjam来编译boost python项目。我只是确保在makefile中包含正确的头路径和动态库路径。我很确定windows和IDE也可以做类似的事情。祝你好运,别用bjam。我建议改用烤饼。我确实想知道为什么这些信息不在教程中。