如何使用bjam语法配置Boost.Python?

时间:2013-09-27 16:03:32

标签: c++ boost-python bjam boost-bjam

我正在尝试使用Boost.Python。

我的系统是:

Visual Studio 2012 + Windows7 64位+ Python 2.7.5 32位+ Boost 1.54。

现在,我认为安装了Boost.Python,我可以在C:\local\boost_1_54_0\lib32-msvc-11.0找到.dll和.lib文件,例如boost_python-vc110-mt-gd-1_54.lib

然后我尝试在命令提示符下的C:\local\boost_1_54_0\libs\python\example\quickstart运行示例,如下所示:

  

bjam toolset = msvc toolset = msvc --verbose-test --debug-configuration test

然后我有一些警告:

  

注意:[python-cfg] ...请求配置匹配!

     

通知:[python-cfg]此Python配置的详细信息:

     

注意:[python-cfg]解释器命令:“C:\ Python2.7.5 \ python”

     

注意:[python-cfg]包含路径:“C:\ Python2.7.5 \ Include”

     

注意:[python-cfg]库路径:“C:\ Python2.7.5 \ libs”

     

注意:[python-cfg] DLL搜索路径:“C:\ Python2.7.5”

此外,还有链接错误:

  

LINK:警告LNK4001:未指定对象文件;库使用了LINK   :错误LNK2001:未解析的外部符号_mainCRTStartup   bin \ test_embed.test \ msvc-11.0 \ debug \ test_embed.exe:致命错误   LNK1120:1个未解析的外部

我认为配置文件可能有问题。在Boost.Python Instruction中,我发现有两个文件可能很重要,分别为user-config.jamboost-build.jam

对于user-config.jam,我在C:\local\boost_1_54_0\tools\build\v2找到它,其内容为:

  

使用msvc:11.0;

     

使用python:2.7:C:\\ Python2.7.5 \\;

boost-config.jam,无处不在!我不知道应该修改哪一个。我想它应该是与示例在同一目录中的那个。但它的内容应该是什么?

此外,我仍然不确定此问题是由错误的配置文件还是Boost.Python安装不当引起的。

是否有bjam语法教程?我已经开始搜索它,但每次我都回到Boost教程。

任何人都可以帮我解决这个问题吗?非常感谢。 :)

1 个答案:

答案 0 :(得分:2)

您检查了主目录中的the user-config.jam

ECHO %HOMEDRIVE%%HOMEPATH%

下一点是你的user-config.jam没有完成你的python配置..

这是一个例子:

# -------------------
# 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
    ;