使用bjam

时间:2019-01-29 08:26:46

标签: boost-python

我一直是第一次尝试使用boost :: python,我从随附的教程开始,但是我感到失望,因为一整天的工作后我什至什至无法构建任何东西。

我的开发工具是Python37,Boost1.69,VS 2017和Windows 10 OS。 Python解释器和Boost的二进制文件都是64位版本。

我在“ Z:/ EXTERNOS / boost_1_69_0 / tools / build”中构建了bjam.exe,但是我没有将其包含在系统路径中(我测试了包含它,并且得到了相同的错误)。我正在使用ECHO%HOMEDRIVE %% HOMEPATH%表示的文件夹中的下一个“ user-config.bjam”文件:

import toolset : using ;
using msvc : 14.1 ;
using python 
  : 3.7  # Version
  : "C:/Program Files/Python37/python.exe"  # Interpreter
  : "C:/Program Files/Python37/include"  # inc dir
  : "C:/Program Files/Python37/libs"  # link libs
  : # conditions
  ;

然后我在命令控制台中将文件夹更改为文件夹“ Z:/ EXTERNOS / boost_1_69_0 / libs / python / example / quickstart”并运行以下语句:

Z:\EXTERNOS\boost_1_69_0\tools\build\bjam.exe

控制台中的输出是下一个:

"C:/Program" no se reconoce como un comando interno o externo,
programa o archivo por lotes ejecutable.
...found 26 targets...
...updating 6 targets...
compile-c-c++ extending.obj
extending.cpp
extending.cpp(5): fatal error C1083: No se puede abrir el archivo incluir: 'boost/python/class.hpp': No such file or directory

    call "..\bin\standalone\msvc\msvc-14.1\msvc-setup.bat"  >nul
 cl /Zm800 -nologo @"extending.obj.rsp"

...failed compile-c-c++ extending.obj...
...skipped <p.>extending.pyd for lack of <p.>extending.obj...
...skipped <p.>extending.pdb for lack of <p.>extending.obj...
compile-c-c++ embedding.obj
embedding.cpp
embedding.cpp(6): fatal error C1083: No se puede abrir el archivo incluir: 'boost/python.hpp': No such file or directory

    call "..\bin\standalone\msvc\msvc-14.1\msvc-setup.bat"  >nul
 cl /Zm800 -nologo @"embedding.obj.rsp"

...failed compile-c-c++ embedding.obj...
...skipped <p.>embedding.exe for lack of <p.>embedding.obj...
...skipped <p.>embedding.pdb for lack of <p.>embedding.obj...
...failed updating 2 targets...
...skipped 4 targets...

我注意到很多人都在解决与此类似的问题,但是测试提供给他们的解决方案似乎对我不起作用。

关于失败的任何主意吗?

1 个答案:

答案 0 :(得分:0)

再次与bjam战斗之后,我放弃了,开始寻找另一种更简单的方法。其中有一些:使用CMake,python disutils ...,但是我发现最适合使用c ++和msvc的人可以找到下一个:

  • 使用VS(已对2010年至2017年的版本进行了测试,不确定较早的版本)。
  • 创建并清空控制台应用程序,并将其设置为共享库。
  • 在VS中设置所有内容以查找所需的boost和python文件夹,包括include和库。
  • 编写boost :: python教程的c ++代码并进行编译(请记住,x86或64位环境必须与所安装的python解释器匹配)。
  • 转到结果文件夹,并将.dll扩展名更改为.pyd扩展名。
  • 测试它,在同一结果文件夹中打开一个控制台命令,并启动Python解释器,导入并调用任何方法。

远离官方的bjam系统!