Cuda cusolver 无法在 Visual Studio 2013 中链接
Cuda cusolver can't link in Visual studio 2013
我基本上都试过了,我不能让vs2013编译和链接到cusolver库。我已经尝试了cuda安装包附带的所有示例项目,基本上所有示例都可以正常工作。虽然没有使用cusolver的样本。包含文件工作得很好。链接器是错误的,所有其他cuda的东西链接正常。我尝试添加一行cusolver代码到一个完美的工作cuda样本,它崩溃了。下面是代码片段:
#include "cuda_runtime.h"
#include "device_launch_parameters.h"
#include "cusolver_common.h"
#include "cusolverDn.h"
#include <stdio.h>
cudaError_t addWithCuda(int *c, const int *a, const int *b, unsigned int size);
__global__ void addKernel(int *c, const int *a, const int *b)
{
int i = threadIdx.x;
c[i] = a[i] + b[i];
}
int main()
{
cusolverDnCreate(new cusolverDnHandle_t);
return 0;
}
构建输出为:
1>------ Build started: Project: The cudan, Configuration: Release x64 ------
1> Compiling CUDA source file kernel.cu...
1>
1> c:UsersGdizzledocumentsvisual studio 2013ProjectsThe cudanThe cudan>"C:Program FilesNVIDIA GPU Computing ToolkitCUDAv7.0binnvcc.exe" -gencode=arch=compute_20,code="sm_20,compute_20" --use-local-env --cl-version 2013 -ccbin "C:Program Files (x86)Microsoft Visual Studio 12.0VCbinx86_amd64" -I"C:Program FilesNVIDIA GPU Computing ToolkitCUDAv7.0include" -I"C:Program FilesNVIDIA GPU Computing ToolkitCUDAv7.0include" --keep-dir x64Release -maxrregcount=0 --machine 64 --compile -cudart static -DWIN32 -DWIN64 -DNDEBUG -D_CONSOLE -D_MBCS -Xcompiler "/EHsc /W3 /nologo /O2 /Zi /MD " -o x64Releasekernel.cu.obj "c:UsersGdizzledocumentsvisual studio 2013ProjectsThe cudanThe cudankernel.cu"
1> kernel.cu
1>kernel.cu.obj : error LNK2001: unresolved external symbol cusolverDnCreate
1>c:usersgdizzledocumentsvisual studio 2013ProjectsThe cudanx64ReleaseThe cudan.exe : fatal error LNK1120: 1 unresolved externals
我试过在项目属性-> vc++和链接器选项中添加目录,但没有帮助。什么好主意吗?很奇怪,这个1库不能工作。
(如果你对如何使用gpu编程解决最小二乘方程组有任何其他想法,这将是有帮助的)
编辑更新:你不能包含额外的。h文件或额外的库或额外的包含目录在其他链接器选项,如cudaLinker或vc++目录
我刚刚在Windows 7 64位,Visual Studio 2013 Community, CUDA 7上测试了这个。
-
首先打开vectorAdd cuda示例代码。确保您可以正确构建此代码。(它应该是一个x64项目。CUDA 7不支持32位项目或windows上的操作系统。如果你不能正确构建这个,你的问题与cusolver无关
-
在vectorAdd.cu顶部添加以下头文件:
#include <cusolverDn.h>
-
在
main
例程的开头添加以下两行:cusolverDnHandle_t my_handle; cusolverDnCreate(&my_handle);
-
Go to Project…vectorAdd属性输入链接器……附加依赖项。在这个字段中,您应该已经找到了一些库,包括cudart_static.lib。单击该字段,然后单击右侧的下拉菜单箭头,然后单击
<Edit...>
在编辑窗口的库列表底部,将cusolver.lib
添加到自己的行中。 -
重建项目
相关文章:
- 将"libpqxx"与Visual Studio 2013链接/安装,以便与PostgrSQL建立C++连接
- Visual Studio 2013,错误 MSB8020:找不到 Visual Studio 2010 的生成工具
- 为什么在Visual Studio 2013上的std::this_thread::sleep_for上死锁
- 性能报告 (.vspx) 在 Visual Studio 2013 中未打开(显示损坏)
- 在 Visual Studio 2013 中使用零大小数组C++
- Visual Studio 2013 标头包含失败
- Visual studio 2013 和 g++ 7.1 中将 int 和 long 类型相乘时的 c++ 差异行为
- 在Visual Studio 2013中编译的STL列表代码在Visual Studio 2019中给出了错误.想知道原
- 错误 LNK2019: 未解析的外部符号 Visual Studio 2013 与 openCV
- cv:内存位置的异常 - 运行 openCV 代码 Visual Studio 2013 & Visual Studio 2017 - Windows 7
- 模块计算机类型和目标计算机类型 Visual Studio 2013
- 如何在Visual Studio 2013 Ultimate Edition中包含某个单词的每一行中插入断点
- 具有显式参数和大小的可变参数模板.Visual Studio 2013.
- 使用 Visual Studio 2013 编译 GDCM dlls 2.8.4 for Windows
- 基本字符串操作有问题 [c++, Visual Studio 2013]
- Visual Studio 2013中可能的C/C 编译器错误
- 在Visual Studio 2013上.Win32 应用和 CLR 应用
- 我正在尝试在Visual Studio 2013中编写我的第一个"Hello World"代码。为什么我会收到"IntelliSense: no operator message"和"error C2
- DLL不导出Visual Studio 2013 VB代码中的字符串
- 我们如何使用Visual Studio 2013访问C 中的更改编号