【问题标题】:LINK: fatal error lnk1181: cannot open input file 'id=2.obj'链接:致命错误 lnk1181:无法打开输入文件 'id=2.obj'
【发布时间】:2017-02-17 21:54:20
【问题描述】:
我正在尝试使用 VS2015 x64 本机工具命令提示符在我的 Windows 10 中编译 cudamat。我已经安装了 Cuda 工具包 8 以及带有 MSVC 编译器的 Visual Studio 2015。下载 cudamat 后,我在该目录中给出了以下命令:
python setup.py 安装
当它尝试构建 cudamat.libcudamat 扩展时,链接器出现以下错误:
致命错误 lnk1181:无法打开输入文件 'id=2.obj'
错误:命令“C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\bin\nvcc.exe”失败,退出状态为 2
有人可以帮我吗?
【问题讨论】:
标签:
python
visual-studio-2015
linker-errors
cudamat
【解决方案1】:
如果你有这个问题,我们可以假设之前的 cudamat.obj 和 cudamat_kernels.obj 编译是成功的。
要使其正常工作,您必须按照here 所述手动操作。
总之:
- 首先,您必须转到下载 Cudamat 的目录 (
git clone https://github.com/cudamat/cudamat.git)。
- 将 cudamat 文件夹(您可以找到 cudamat.py、learn.py 和 init.py 的文件夹)复制到您的 python 站点包文件夹(您可以使用
python -c "import sys; print(sys.path)" 检查路径)
-
现在您必须进入该文件夹并手动编译 dll。为此,您必须执行一些命令:
nvcc -c -O -o cudamat.obj cudamat.cu
nvcc -c -O -o cudamat_kernels.obj cudamat_kernels.cu
nvcc --shared -o libcudamat.dll cudamat.obj cudamat_kernels.obj -lcublas
然后重复这个过程,将 cudamat 更改为 learn 并将 libcudamat.dll 更改为 libcudalearn.dll
这应该已经可以了,但如果不行,您必须调整您的 python 路径,以便它可以看到您的新库
或者,您也可以尝试:pip install http://github.com/f0k/cudamat/archive/simplify-compile.zip