问题描述
已启动生成…
1>------ 已启动生成: 项目: tensorRTTest, 配置: Debug x64 ------
1>sampleMNIST.obj : error LNK2019: 无法解析的外部符号 cudaStreamCreate,函数 "void __cdecl doInference(class nvinfer1::IExecutionContext &,float *,float *,int)" (?doInference@@YAXAEAVIExecutionContext@nvinfer1@@PEAM1H@Z) 中引用了该符号
1>sampleMNIST.obj : error LNK2019: 无法解析的外部符号 cudaStreamDestroy,函数 "void __cdecl doInference(class nvinfer1::IExecutionContext &,float *,float *,int)" (?doInference@@YAXAEAVIExecutionContext@nvinfer1@@PEAM1H@Z) 中引用了该符号
1>sampleMNIST.obj : error LNK2019: 无法解析的外部符号 cudaStreamSynchronize,函数 "void __cdecl doInference(class nvinfer1::IExecutionContext &,float *,float *,int)" (?doInference@@YAXAEAVIExecutionContext@nvinfer1@@PEAM1H@Z) 中引用了该符号
1>sampleMNIST.obj : error LNK2019: 无法解析的外部符号 cudaMalloc,函数 "void __cdecl doInference(class nvinfer1::IExecutionContext &,float *,float *,int)" (?doInference@@YAXAEAVIExecutionContext@nvinfer1@@PEAM1H@Z) 中引用了该符号
1>sampleMNIST.obj : error LNK2019: 无法解析的外部符号 cudaFree,函数 "void __cdecl doInference(class nvinfer1::IExecutionContext &,float *,float *,int)" (?doInference@@YAXAEAVIExecutionContext@nvinfer1@@PEAM1H@Z) 中引用了该符号
1>sampleMNIST.obj : error LNK2019: 无法解析的外部符号 cudaMemcpyAsync,函数 "void __cdecl doInference(class nvinfer1::IExecutionContext &,float *,float *,int)" (?doInference@@YAXAEAVIExecutionContext@nvinfer1@@PEAM1H@Z) 中引用了该符号
1>D:\code\Cplusplus\tensorRTTest\x64\Debug\tensorRTTest.exe : fatal error LNK1120: 6 个无法解析的外部命令
1>已完成生成项目“tensorRTTest.vcxproj”的操作 - 失败。
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
一般这种“无法解析的外部符号”,多半是缺少lib库。这里是缺少cudart.lib和cuda.lib,在vs2019链接器上加上,问题解决。
myelin64_1.lib
nvinfer.lib
nvinfer_plugin.lib
nvonnxparser.lib
nvparsers.lib
cudart.lib
cuda.lib