使用特定的conda环境和Windows上的MSVC构建Boost.Python

时间:2018-05-17 06:27:08

标签: python c++ visual-studio-2010 boost conda

我正在尝试安装Python.Boost,但是,在下载之后,我无法构建软件包。我是通过Windows 7上的以下.bat脚本实现的。(我的计算机上也没有管理员权限,并且安装了多个版本的MSVC)为了构建它,我按照这里的说明进行操作:

由于我在计算机上找不到user-config.jam文件,我在boost文件夹的根目录下创建了一个文件。

CALL C:\Appl\Miniconda3_32bits\Scripts\activate py34
CALL "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86

cd /D C:\Appl\boost_1_67_0

(
echo using msvc : 10.0 : "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\cl.exe" ;
echo using python
echo            : 3.4
echo            : "C:\Appl\Miniconda3_32bits\envs\py34\python.exe"
echo            : "C:\Appl\Miniconda3_32bits\envs\py34\include"
echo            : "C:\Appl\Miniconda3_32bits\envs\py34\libs"
echo            : ^<define^>BOOST_ALL_NO_LIB=1
echo           ;
) > user-config.jam

CALL bootstrap vc10

SET PATH=%PATH%;C:\Appl\boost_1_67_0\;
cd C:\Appl\boost_1_67_0\libs\python\example\quickstart
echo %PATH%
PAUSE
CALL C:\Appl\boost_1_67_0\b2 toolset=msvc --verbose-test test
PAUSE

我在两个PAUSE语句之间收到以下警告(法语声明是“无法打开包含文件”):

warning: no Python configured in user-config.jam
warning: will use default configuration
...found 34 targets...
...updating 10 targets...
compile-c-c++ extending.obj
extending.cpp
extending.cpp(5) : fatal error C1083: Impossible d'ouvrir le fichier include : 'boost/python/class.hpp' : No such file or directory

    call "..\bin\standalone\msvc\msvc-10.0\msvc-setup.bat" x86 >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.>test_ext for lack of <p.>extending.pyd...
compile-c-c++ embedding.obj
embedding.cpp
embedding.cpp(6) : fatal error C1083: Impossible d'ouvrir le fichier include : 'boost/python.hpp' : No such file or directory

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

...failed compile-c-c++ embedding.obj...
...skipped <p.>test_embed.exe for lack of <p.>embedding.obj...
...skipped <p.>test_embed.run for lack of <p.>test_embed.exe...
...failed updating 2 targets...
...skipped 6 targets...

我的计算机上安装了几个Python(32位和64位),我想使用32版本,因为我想要接口的C ++使用的是32位编译的外部DLL。但是,我似乎无法为Boost设置特定的conda environement。

此外,第一个用于激活环境的语句似乎被第二个语句覆盖:我真的不明白第二个语句在做什么,但似乎有必要从命令编译C ++中的基本问候世界线。

0 个答案:

没有答案