1

我为 quantlib 1.14 和 quantlib 1.14-swig 下载了 tarbals。SWIG 下的 quantlib 文件夹确实包含 quantlib_wrap.cpp。但安装程序抱怨 MSC 版本。这是新的错误。这篇文章与另一篇关于缺少quantlib_wrap.cpp错误消息的文章相关联。

C:\Users\Public\3rdParty\Libraries\QuantLib-1.14\ql/config.msvc.hpp(29) : fatal error C1189: #error :  "versions of Visual C++ prior to VC++10 (2010) are no longer supported"
error: command 'C:\\Users\\U435169\\AppData\\Local\\Programs\\Common\\Microsoft\\Visual C++ for Python\\9.0\\VC\\Bin\\cl.exe' failed with exit status 2.

使用 1.13。不再支持 VC9。——路易吉·巴拉比奥

我也会尝试 1.13。但实际上,我确实安装了 VC++ 14.0。我正在使用 VS2015 编译 quantlib。不确定真正的原因。

我确实尝试了 1.13 并遇到了链接错误。我认为这可能是由于 quantlib-swig (VC9.0) 和 quantlib(VC14) 的编译不一致造成的。如果是这样,我们如何控制 quantlib-swig 的编译版本?有没有办法控制它?

C:\Users\U435169\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -D__WIN32__ -DWIN32 -DNDEBUG -D_WINDOWS -DNOMINMAX -ID:\packages\Python27\include -ID:\packages\Python27\PC -IC:\Users\Public\3rdParty\Libraries\QuantLib-1.13 -IC:\Users\Public\MSYS2\mingw32\include /TpQuantLib/quantlib_wrap.cpp /Fobuild\temp.win32-2.7\Release\QuantLib/quantlib_wrap.obj /GR /FD /Zm250 /EHsc /bigobj /MD
quantlib_wrap.cpp
C:\Users\U435169\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\link.exe /DLL /nologo /INCREMENTAL:NO /LIBPATH:D:\packages\Python27\libs /LIBPATH:D:\packages\Python27\PCbuild /LIBPATH:D:\packages\Python27\PC\VS9.0 /LIBPATH:C:\Users\Public\3rdParty\Libraries\QuantLib-1.13\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\Release\QuantLib\_QuantLib.lib /MANIFESTFILE:build\temp.win32-2.7\Release\QuantLib\_QuantLib.pyd.manifest /subsystem:windows /machine:x86
LINK : fatal error LNK1104: cannot open file 'QuantLib-vc90-mt.lib'
error: command 'C:\\Users\\U435169\\AppData\\Local\\Programs\\Common\\Microsoft\\Visual C++ for Python\\9.0\\VC\\Bin\\link.exe' failed with exit status 1104
4

1 回答 1

1

我猜你正在为 Python 2.7 编译模块?

适用于 Windows 的 Python 2.7 是使用 VC++ 2008 编译的,并且也使用它来编译外部模块。如果您可以改用 Python 3.5 或更高版本,它将使用您的 VC++ 2015 安装。

于 2018-11-20T22:42:07.077 回答