构建Python包与C绑定在Windows(VC90)导致LNK1181致命错误(Build Pyt

2019-10-18 12:42发布

我试图建立一个Python包(pyspotify)与绑定的C库(libspotify)。

我使用Python 2.7.5,并且已经安装VS2008 Express的一些必需的命令行工具。

当我打电话python setup.py build从命令提示符(具有管理员权限)我得到以下的输出:

running build
running build_py
running build_ext
building 'spotify._spotify' extension

然后〜这些18,一个包中的每个.c文件:

c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\cl.exe /c /nologo /Ox
/MD /W3 /GS- /DNDEBUG -Isrc -Ic:\Python\Python27\include -Ic:\Python\Python27\PC
/Tcsrc\module.c /Fobuild\temp.win32-2.7\Release\src\module.obj
module.c

然后搅局者:

c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\link.exe /DLL /nologo
/INCREMENTAL:NO /LIBPATH:c:\Python\Python27\libs /LIBPATH:c:\Python\Python27\PCb
uild spotify.lib /EXPORT:init_spotify build\temp.win32-2.7\Release\src\module.ob
j build\temp.win32-2.7\Release\src\session.obj build\temp.win32-2.7\Release\src\
link.obj build\temp.win32-2.7\Release\src\track.obj build\temp.win32-2.7\Release
\src\album.obj build\temp.win32-2.7\Release\src\albumbrowser.obj build\temp.win3
2-2.7\Release\src\artist.obj build\temp.win32-2.7\Release\src\artistbrowser.obj
build\temp.win32-2.7\Release\src\search.obj build\temp.win32-2.7\Release\src\pla
ylist.obj build\temp.win32-2.7\Release\src\playlistcontainer.obj build\temp.win3
2-2.7\Release\src\playlistfolder.obj build\temp.win32-2.7\Release\src\image.obj
build\temp.win32-2.7\Release\src\user.obj build\temp.win32-2.7\Release\src\pyspo
tify.obj build\temp.win32-2.7\Release\src\toplistbrowser.obj /OUT:build\lib.win3
2-2.7\spotify\_spotify.pyd /IMPLIB:build\temp.win32-2.7\Release\src\_spotify.lib
 /MANIFESTFILE:build\temp.win32-2.7\Release\src\_spotify.pyd.manifest
LINK : fatal error LNK1181: cannot open input file 'spotify.lib'
error: command '"c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\link.
exe"' failed with exit status 1181

我试图寻找这个LNK1181错误,但所有的答案似乎是围绕左右记住字符串引号,或在VS一些设置,我在这种情况下没有控制权。

Answer 1:

你需要从下载libspotify相应的版本在这里将它解压缩,并把它放在你正在试图建立在同一个目录,(最容易的地方),或者告诉VS哪里可以找到它。



文章来源: Build Python package with C bindings in Windows (VC90) causes LNK1181 fatal error