1

我试图在我的 Windows7 64 位机器上安装 Boost.Python 期间运行一个示例。

我的 boost 安装在C:\local\boost_1_54_0. 因此,在步骤 3.1.4,我输入

b2 工具集=msvc --build-type=complete --verbose-test 测试

但是,在命令提示符窗口中,我有 135 个未解决的外部错误。这些错误都指向一系列具有相同前缀的文件,boost_python-vc110-gd-1_54扩展名是.rsp.dll等等,它们应该是在C:\local\boost_1_54_0\bin.v2\libs\python\build\msvc-11\debug\

我可以知道我错了吗?

4

2 回答 2

0

这对我构建 Boost.Python “示例”很有用

1.) 解压 boost_1_55_0.zip

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

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

Bootstrap

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
    ;

5.) 配置后构建库!!

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

.\b2

6.) 将 user-config.jam 复制到 \boost_1_55_0\libs\python\example\tutorial

7.) 进一步转到 \boost_1_55_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_1_55_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_1_55_0\libs\python\example\tutorial 中打开命令提示符

并输入以下命令:

bjam

10.) 构建成功后..

你应该在目录中有这个文件:

hello_ext.dll

将此文件重命名为:

hello_ext.pyd
于 2014-06-10T09:11:08.207 回答
0

我不认为你想要--build-type=complete,它不知道要运行哪一个。另外,我相信只有 threading=multi, link=shared 可以工作。

我已经记录了我必须做些什么才能让这个工作自己完成。

于 2015-04-10T17:50:25.157 回答