1

文件:

D:\Program Files (x86)\Microsoft Visual Studio 9.0

D:\Program Files (x86)\Microsoft Visual Studio 9.0\boost_1_50_0

D:\Program Files (x86)\Microsoft Visual Studio 9.0\QuantLib-1.2

D:\Program Files (x86)\Microsoft Visual Studio 9.0\QuantLib-SWIG-1.2

D:\Program Files (x86)\Microsoft Visual Studio 9.0\swigwin-2.0.7

D:\Python27

虽然我严格遵循http://quantcodetips.blogspot.com/2012_02_01_archive.html中描述的方法,但在 Visual Studio 2008 命令提示符中设置后

set INCLUDE=D:\Program Files (x86)\Microsoft Visual Studio 9.0\boost_1_50_0

set QL_DIR=D:\Program Files (x86)\Microsoft Visual Studio 9.0\QuantLib-1.2

set LIB=D:\Program Files (x86)\Microsoft Visual Studio 9.0\QuantLib-1.2\ql\Release\;
D:\Program Files (x86)\Microsoft Visual Studio 9.0\boost_1_50_0\stage\lib\

并将名称 QuantLib-boost1.50-msvc9.obj (D:\Program Files (x86)\Microsoft Visual Studio 9.0\QuantLib-1.2\ql\Release) 更改为 QuantLib-vc90-mt.obj;

然后转到 QuantLib-SWIG-1.2,使用

 python setup.py build --compiler=msvc

出现链接错误。

D:\Program Files (x86)\Microsoft Visual Studio 9.0\QuantLib-1.2\ql/time/calendar
s/argentina.hpp : warning C4819: The file contains a character that cannot be re
presented in the current code page (936). Save the file in Unicode format to pre
vent data loss

D:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\link.exe /DLL /nologo
/INCREMENTAL:NO /LIBPATH:D:\Python27\libs /LIBPATH:D:\Python27\PCbuild "/LIBPATH
:D:\Program Files (x86)\Microsoft Visual Studio 9.0\QuantLib-1.2\lib" "/LIBPATH:
D:\Program Files (x86)\Microsoft Visual Studio 9.0\QuantLib-1.2\ql\Release\" "/L
IBPATH:D:\Program Files (x86)\Microsoft Visual Studio 9.0\boost_1_50_0\stage\lib
\" /EXPORT:init_QuantLib build\temp.win32-2.7\Release\QuantLib/quantlib_wrap.obj
/OUT:build\lib.win32-2.7\QuantLib\_QuantLib.pyd /IMPLIB:build\temp.win32-2.7\Re
lease\QuantLib\_QuantLib.lib /MANIFESTFILE:build\temp.win32-2.7\Release\QuantLib
\_QuantLib.pyd.manifest /subsystem:windows /machine:I386

LINK : fatal error LNK1181: cannot open input file 'Files.obj'
error: command '"D:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\link.
exe"' failed with exit status 1181

寻求帮助。

4

1 回答 1

0

Python distutils 模块(用于构建包装器)在路径名中存在空格问题。将 QuantLib 和 Boost 文件夹移出 C:\Program Files,相应地更改 INCLUDE、QL_DIR 和 LIB 变量,然后重试。

在旁注中,我阅读了您引用的链接中的说明,我不会太严格地遵循它们。例如,您可以使用提供的 VC++2008 解决方案文件 (QuantLib_vc9.sln) 而不是自己创建新项目。这也将避免重命名库的需要,因为它将以正确的名称开始创建它,并且无需从分发中删除内容(这是有原因的)。但如果你都准备好了,这可以等待。

于 2012-07-23T10:49:00.533 回答