链接:致命错误lnk1181:无法打开输入文件' id = 2.obj'

时间:2016-10-09 09:21:02

标签: python visual-studio-2015 linker-errors cudamat

我尝试使用VS2015 x64本机工具命令提示符在我的Windows 10中编译cudamat。我已经安装了Cuda toolkit 8以及带有MSVC编译器的Visual Studio 2015。下载cudamat后,我在该目录中给出了以下命令:

  

python setup.py install

当它尝试构建cudamat.libcudamat扩展时,链接器出现以下错误:

  

致命错误lnk1181:无法打开输入文件' id = 2.obj'

     

错误:命令' C:\ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v8.0 \ bin \ nvcc.exe'退出状态2失败

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:4)

如果您遇到此问题,我们可以假设早期编译cudamat.obj和cudamat_kernels.obj是成功的。

要使其有效,您必须按照here所述手动执行此操作。

简而言之:

  1. 首先,您必须转到已下载Cudamat的目录(python -c "import sys; print(sys.path)")。
  2. 将cudamat文件夹(您可以找到cudamat.py,learn.py和init.py的文件夹)复制到python site-packages文件夹(可以使用nvcc -c -O -o cudamat.obj cudamat.cu检查路径)
  3. 现在您必须转到此文件夹并手动编译dll。要做到这一点,你必须执行一些命令:

    nvcc -c -O -o cudamat_kernels.obj cudamat_kernels.cu

    nvcc --shared -o libcudamat.dll cudamat.obj cudamat_kernels.obj -lcublas

    pip install http://github.com/f0k/cudamat/archive/simplify-compile.zip

    然后重复进程更改cudamat学习和libcudamat.dll到libcudalearn.dll

  4. 这应该可以工作但是如果没有,你必须调整你的python路径,以便它可以看到你的新库

  5. 或者,您也可以尝试:Sub PrintPreview() Application.ScreenUpdating = False With Worksheets("Bill") .Range("J3").Value = ActiveCell.Value .Visible = xlSheetVisible .PrintPreview Application.ScreenUpdating = True .Visible = xlSheetHidden End With End Sub