文件:
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
寻求帮助。
答案 0 :(得分:0)
Python distutils模块(用于构建包装器)在路径名中有空格问题。将QuantLib和Boost文件夹移出C:\ Program Files,相应地更改INCLUDE,QL_DIR和LIB变量,然后重试。
在旁注中,我阅读了您引用的链接中的说明,我不会过于严格地遵循它们。例如,您可以使用提供的VC ++ 2008解决方案文件(QuantLib_vc9.sln)而不是自己创建新项目。这也将避免重命名库的需要,因为它将使用正确的名称创建它,并且将不必从分发中删除东西(这是有原因的)。但如果你们都已经设置好了,可以等一下。