在 Windows 上運行 python setup.py install 安裝 C 擴展包(如 pyFM)時,鏈接器報錯 LNK1181: cannot open input file 'm.lib'。原因是缺少 Microsoft C 運行庫中的數學庫 m.lib。
VC\Tools\MSVC\\lib\x64 或 x86 子目錄。也可在「開發人員命令提示符」中執行 dir /s m.lib 查找。Extension 定義中添加 library_dirs 和 libraries:
from setuptools import setup, Extension
ext = Extension('pyFM',
sources=['src/pyFM.cpp'],
library_dirs=[r'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\lib\x64'],
libraries=['m']) # 鏈接 m.lib
setup(name='pyFM', ext_modules=[ext])
.whl 文件,直接 pip install pyFM-*.whl 避開編譯。m.lib 提供 math.h 中函數(如 sin, exp)的實現符號。-lm 鏈接 libm.a,MSVC 對應 m.lib。PROGRA~1)。配置正確後,重新運行 python setup.py install 即可通過鏈接階段。