使用python setup.py构建时出现LNK1104错误

时间:2018-04-30 08:47:10

标签: python-3.x python-2.x quantlib

我使用Visual Studio 2017在Windows上构建了Quantlib,并希望为Python构建Quantlib-SWIG。

但是,我有LNK1104:错误。即,从Command Prompt目录启动C:\QuantLib-SWIG-1.12\Python后,我收到此错误:

 fatal error LNK1104: cannot open file 'QuantLib-vc90-x64-mt.lib'

我看到一个similar问题,来自Luigi Ballabio和KingJohnno的建议,以验证QuantLib-vc90-x64-mt.lib文件是否到位&添加到路径变量C:\QuantLib-SWIG-1.12

我做了最后一个建议,但我遇到的问题是我在C:\QuantLib\QuantLib-1.12\lib QuantLib-vc141-x64-mt.lib库中,而不是文件QuantLib-vc90-x64-mt.lib。我创建了单独的目录,将vc141文件重命名为vc90。这没有用。

我还在网上看到,问题可能出在使用不同VS版本专门构建的Python上。我已经使用VS 2010(而不是VS2008)下载了构建的Python 2.7,并且没有成功。

请在此处查看整个终端消息:

C:\QuantLib-SWIG-1.12\Python>cd C:\QuantLib-SWIG-1.12\Python

C:\QuantLib-SWIG-1.12\Python>set QL_DIR=C:\QuantLib\QuantLib-1.12

C:\QuantLib-SWIG-1.12\Python>set INCLUDE=C:\Boost\boost_1_66_0

C:\QuantLib-SWIG-1.12\Python>
C:\QuantLib-SWIG-1.12\Python>python setup.py build
running build
running build_py
running build_ext
building 'QuantLib._QuantLib' extension
C:\Users\user1\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -D__WIN32__ -DWIN32 -DNDEBUG -D_WINDOWS -DNOMINMAX -IC:\Python27vc08\include -IC:\Python27vc08\PC -IC:\QuantLib\QuantLib-1.12 -IC:\Boost\boost_1_66_0 /TpQuantLib/quantlib_wrap.cpp /Fobuild\temp.win-amd64-2.7\Release\QuantLib/quantlib_wrap.obj /GR /FD /Zm250 /EHsc /bigobj /MD
quantlib_wrap.cpp
C:\Users\user1\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Include\xutility(2472) : warning C4267: '=' : conversion from 'size_t' to 'unsigned int', possible loss of data
        C:\Users\user1\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Include\xutility(2485) : see reference to function template instantiation '_OutIt std::_Copy_opt<_InIt,unsigned int*,std::forward_iterator_tag>(_InIt,_InIt,_OutIt,_InOutItCat,std::_Nonscalar_ptr_iterator_tag,std::_Range_checked_iterator_tag)' being compiled
        with
        [
            _OutIt=unsigned int *,
            _InIt=const unsigned __int64 *,
            _InOutItCat=std::forward_iterator_tag
        ]
        C:\Users\user1\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Include\xutility(2563) : see reference to function template instantiation '_OutIt std::_Copy_opt<const unsigned __int64*,_OutIt>(_InIt,_InIt,_OutIt,std::random_access_iterator_tag,std::_Nonscalar_ptr_iterator_tag,std::_Range_checked_iterator_tag)' being compiled
        with
        [
            _OutIt=std::_Vector_iterator<std::_Vbase,std::allocator<std::_Vbase>>,
            _InIt=const unsigned __int64 *
        ]
        QuantLib/quantlib_wrap.cpp(16340) : see reference to function template instantiation 'std::_Vector_iterator<_Ty,_Alloc> std::copy<std::_Vector_const_iterator<unsigned __int64,std::allocator<unsigned __int64>>,std::_Vector_iterator<_Ty,_Alloc>>(_InIt,_InIt,_OutIt)' being compiled
        with
        [
            _Ty=std::_Vbase,
            _Alloc=std::allocator<std::_Vbase>,
            _InIt=std::_Vector_const_iterator<size_t,std::allocator<size_t>>,
            _OutIt=std::_Vector_iterator<std::_Vbase,std::allocator<std::_Vbase>>
        ]
C:\Users\user1\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\amd64\link.exe /DLL /nologo /INCREMENTAL:NO /LIBPATH:C:\Python27vc08\libs /LIBPATH:C:\Python27vc08\PCbuild\amd64 /LIBPATH:C:\Python27vc08\PC\VS9.0\amd64 /LIBPATH:C:\QuantLib\QuantLib-1.12\lib /EXPORT:init_QuantLib build\temp.win-amd64-2.7\Release\QuantLib/quantlib_wrap.obj /OUT:build\lib.win-amd64-2.7\QuantLib\_QuantLib.pyd /IMPLIB:build\temp.win-amd64-2.7\Release\QuantLib\_QuantLib.lib /MANIFESTFILE:build\temp.win-amd64-2.7\Release\QuantLib\_QuantLib.pyd.manifest /subsystem:windows /machine:x64
LINK : fatal error LNK1104: cannot open file 'QuantLib-vc90-x64-mt.lib'
error: command 'C:\\Users\\user1\\AppData\\Local\\Programs\\Common\\Microsoft\\Visual C++ for Python\\9.0\\VC\\Bin\\amd64\\link.exe' failed with exit status 1104

C:\QuantLib-SWIG-1.12\Python>

1 个答案:

答案 0 :(得分:0)

python setup.py buildPython 3.6.5下工作。