有关 error MSB3721,返回代码为2

各路大神好!
我之前写的代码在我原来的电脑上可以成功的执行。最近新配置了一台电脑,把原来的工程拷到新电脑上连“生成解决方案”都失败,出现了以下的错误信息提示:
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\BuildCustomizations\CUDA 5.0.targets(592,9): error MSB3721: 命令““C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.0\bin\nvcc.exe” -gencode=arch=compute_20,code="sm_20,compute_20" -gencode=arch=compute_10,code="sm_10,compute_10" --use-local-env --cl-version 2010 -ccbin “d:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin” -I"./" -I"…/…/common/inc" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.0\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.0\include" -G --keep-dir “Debug” -maxrregcount=0 --machine 32 --compile -g -DWIN32 -D_MBCS -Xcompiler "/EHsc /W3 /nologo /Od /Zi /RTC1 /MTd " -o “Win32/Debug/Label_delete.cu.obj” “C:\Program Files\Microsoft Visual Studio 10.0\TextDetectTest1\Label_delete.cu””已退出,返回代码 2.

在线等!!项目比较急!!谢谢!

LZ您好:

很多情况下,导致错误的原因不会被显示,您可以从VS的Debug菜单的Options菜单项中,将
“项目和解决方案”的“构建和运行"中的build log verbosity改成"detailed"。然后重新生成您的解决方案,并贴出具体的错误信息。

祝您好运~

版主你好!!
我昨天设置了一下,得到一下信息:

1> 1 error detected in the compilation of “C:/Users/ADMINI~1/AppData/Local/Temp/tmpxft_000013b8_00000000-12_TextDetectTest.cpp4.ii”.
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\BuildCustomizations\CUDA 5.0.targets(592,9): error MSB3721: 命令““C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.0\bin\nvcc.exe” -gencode=arch=compute_10,code="sm_10,compute_10" -gencode=arch=compute_20,code="sm_20,compute_20" -gencode=arch=compute_30,code="sm_30,compute_30" -gencode=arch=compute_35,code="sm_35,compute_35" --use-local-env --cl-version 2010 -ccbin “d:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin” -I"./" -I"…/…/common/inc" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.0\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.0\include" -G --keep-dir “Debug” -maxrregcount=0 --machine 32 --compile -g -DWIN32 -D_MBCS -Xcompiler "/EHsc /W3 /nologo /Od /Zi /RTC1 /MTd " -o “Win32/Debug/TextDetectTest.cu.obj” “D:\TextDetectTest\TextDetectTest.cu””已退出,返回代码为 2。
1>已完成执行任务“CudaCompile”的操作 - 失败。
1>已完成在项目“TextDetectTest.vcxproj”中生成目标“CudaBuild”的操作 - 失败。
1>
1>生成失败。

另外我之前写的代码是在32位系统写的,并且能够运行成功!现在转到64位系统进行调试执行,然后出现上述的错误!!

LZ您好:

根据您新提供的信息,注意到“–machine 32”,这表示您的device端生成的是32bit的代码,而您的解决方案应该已经设置为X64,两者不匹配。

您可以在您的项目属性——配置属性中GPU设置部分——host——Target Machine Platform这里改为X64,(此时您命令行中的相应位置的编译参数会变成–machine 64),此时再重新编译即可。

祝您好运~

我修改了!但还是出现那个问题啊!!我快要疯了!!!!!:cry:

难道是文件的路径问题吗???

这就是全部的错误代码?没有给出具体的出错信息?

楼主能否方便将项目打包上传,然后我编译看下错误信息?

感谢来访。

以及,

具体的出错信息应该不止这些(特别是您在ICE的提示下打开了detailed log后),
请向上滚动build log窗口,看看有无更多信息,然后烦请复制下来。

这将有利于为您查找问题的所在,
谢谢。

版主您好!!
经过几天的折腾!现在不出现那个错误了!但是出现了一下的错误:
1>正在生成代码…
1>正在编译资源清单…
1>Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1
1>Copyright (C) Microsoft Corporation. All rights reserved.
1>正在链接…
1>LINK : warning LNK4098: 默认库“LIBCMT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
1>Label_delete.cu.obj : error LNK2019: 无法解析的外部符号 _cudaGetErrorString@4,该符号在函数 “void __cdecl HandleError(enum cudaError,char const *,int)” (?HandleError@@YAXW4cudaError@@PBDH@Z) 中被引用
1>TextDetectTest.cu.obj : error LNK2001: 无法解析的外部符号 _cudaGetErrorString@4
1>ChracDet.cu.obj : error LNK2001: 无法解析的外部符号 _cudaGetErrorString@4
1>Corner.cu.obj : error LNK2001: 无法解析的外部符号 _cudaGetErrorString@4
1>DiffnumDetcu.cu.obj : error LNK2001: 无法解析的外部符号 _cudaGetErrorString@4
1>InforDiffDetcu.cu.obj : error LNK2001: 无法解析的外部符号 _cudaGetErrorString@4
1>Label_delete.cu.obj : error LNK2019: 无法解析的外部符号 ___cudaUnregisterFatBinary@4,该符号在函数 “void __cdecl __cudaUnregisterBinaryUtil(void)” (?__cudaUnregisterBinaryUtil@@YAXXZ) 中被引用
1>TextDetectTest.cu.obj : error LNK2001: 无法解析的外部符号 ___cudaUnregisterFatBinary@4
1>ChracDet.cu.obj : error LNK2001: 无法解析的外部符号 ___cudaUnregisterFatBinary@4
1>Corner.cu.obj : error LNK2001: 无法解析的外部符号 ___cudaUnregisterFatBinary@4
1>DiffnumDetcu.cu.obj : error LNK2001: 无法解析的外部符号 ___cudaUnregisterFatBinary@4
1>InforDiffDetcu.cu.obj : error LNK2001: 无法解析的外部符号 ___cudaUnregisterFatBinary@4
1>Label_delete.cu.obj : error LNK2019: 无法解析的外部符号 _cudaLaunch@4,该符号在函数 “enum cudaError __cdecl cudaLaunch(char *)” (??$cudaLaunch@D@@YA?AW4cudaError@@PAD@Z) 中被引用
1>ChracDet.cu.obj : error LNK2001: 无法解析的外部符号 _cudaLaunch@4
1>Corner.cu.obj : error LNK2001: 无法解析的外部符号 _cudaLaunch@4
1>DiffnumDetcu.cu.obj : error LNK2001: 无法解析的外部符号 _cudaLaunch@4
1>InforDiffDetcu.cu.obj : error LNK2001: 无法解析的外部符号 _cudaLaunch@4
1>Label_delete.cu.obj : error LNK2019: 无法解析的外部符号 _cudaSetupArgument@12,该符号在函数 “void __cdecl __device_stub__Z10ccl_kernelPhPiS0_S0_S0_ii(unsigned char *,int *,int *,int *,int *,int,int)” (?__device_stub__Z10ccl_kernelPhPiS0_S0_S0_ii@@YAXPAEPAH111HH@Z) 中被引用
1>ChracDet.cu.obj : error LNK2001: 无法解析的外部符号 _cudaSetupArgument@12
1>Corner.cu.obj : error LNK2001: 无法解析的外部符号 _cudaSetupArgument@12
1>DiffnumDetcu.cu.obj : error LNK2001: 无法解析的外部符号 _cudaSetupArgument@12
1>InforDiffDetcu.cu.obj : error LNK2001: 无法解析的外部符号 _cudaSetupArgument@12
1>Label_delete.cu.obj : error LNK2019: 无法解析的外部符号 ___cudaRegisterFunction@40,该符号在函数 “void __cdecl __nv_cudaEntityRegisterCallback(void * *)” (?__nv_cudaEntityRegisterCallback@@YAXPAPAX@Z) 中被引用
1>ChracDet.cu.obj : error LNK2001: 无法解析的外部符号 ___cudaRegisterFunction@40
1>Corner.cu.obj : error LNK2001: 无法解析的外部符号 ___cudaRegisterFunction@40
1>DiffnumDetcu.cu.obj : error LNK2001: 无法解析的外部符号 ___cudaRegisterFunction@40
1>InforDiffDetcu.cu.obj : error LNK2001: 无法解析的外部符号 ___cudaRegisterFunction@40
1>Label_delete.cu.obj : error LNK2001: 无法解析的外部符号 ___cudaRegisterFatBinary@4
1>TextDetectTest.cu.obj : error LNK2001: 无法解析的外部符号 ___cudaRegisterFatBinary@4
1>ChracDet.cu.obj : error LNK2019: 无法解析的外部符号 ___cudaRegisterFatBinary@4,该符号在函数 “void __cdecl __sti____cudaRegisterAll_55_tmpxft_000015f0_00000000_14_ChracDet_compute_30_cpp1_ii_0a81798d(void)” (?__sti____cudaRegisterAll_55_tmpxft_000015f0_00000000_14_ChracDet_compute_30_cpp1_ii_0a81798d@@YAXXZ) 中被引用
1>Corner.cu.obj : error LNK2001: 无法解析的外部符号 ___cudaRegisterFatBinary@4
1>DiffnumDetcu.cu.obj : error LNK2001: 无法解析的外部符号 ___cudaRegisterFatBinary@4
1>InforDiffDetcu.cu.obj : error LNK2001: 无法解析的外部符号 ___cudaRegisterFatBinary@4
1>TextDetectTest.cu.obj : error LNK2001: 无法解析的外部符号 _cudaFree@4
1>ChracDet.cu.obj : error LNK2019: 无法解析的外部符号 _cudaFree@4,该符号在函数 “void __cdecl Chrac(struct _IplImage *)” (?Chrac@@YAXPAU_IplImage@@@Z) 中被引用
1>Corner.cu.obj : error LNK2001: 无法解析的外部符号 _cudaFree@4
1>DiffnumDetcu.cu.obj : error LNK2001: 无法解析的外部符号 _cudaFree@4
1>Label_delete.cu.obj : error LNK2001: 无法解析的外部符号 _cudaFree@4
1>ChracDet.cu.obj : error LNK2019: 无法解析的外部符号 _cudaEventElapsedTime@12,该符号在函数 “void __cdecl Chrac(struct _IplImage *)” (?Chrac@@YAXPAU_IplImage@@@Z) 中被引用
1>ChracDet.cu.obj : error LNK2019: 无法解析的外部符号 _cudaEventSynchronize@4,该符号在函数 “void __cdecl Chrac(struct _IplImage *)” (?Chrac@@YAXPAU_IplImage@@@Z) 中被引用
1>Label_delete.cu.obj : error LNK2001: 无法解析的外部符号 _cudaConfigureCall@32
1>ChracDet.cu.obj : error LNK2019: 无法解析的外部符号 _cudaConfigureCall@32,该符号在函数 “void __cdecl Chrac(struct _IplImage *)” (?Chrac@@YAXPAU_IplImage@@@Z) 中被引用
1>Corner.cu.obj : error LNK2001: 无法解析的外部符号 _cudaConfigureCall@32
1>DiffnumDetcu.cu.obj : error LNK2001: 无法解析的外部符号 _cudaConfigureCall@32
1>InforDiffDetcu.cu.obj : error LNK2001: 无法解析的外部符号 _cudaConfigureCall@32
1>ChracDet.cu.obj : error LNK2019: 无法解析的外部符号 _cudaEventRecord@8,该符号在函数 “void __cdecl Chrac(struct _IplImage *)” (?Chrac@@YAXPAU_IplImage@@@Z) 中被引用
1>ChracDet.cu.obj : error LNK2019: 无法解析的外部符号 _cudaEventCreate@4,该符号在函数 “void __cdecl Chrac(struct _IplImage *)” (?Chrac@@YAXPAU_IplImage@@@Z) 中被引用
1>Label_delete.cu.obj : error LNK2019: 无法解析的外部符号 _cudaMemcpy@16,该符号在函数 “void __cdecl CCL(struct _IplImage *)” (?CCL@@YAXPAU_IplImage@@@Z) 中被引用
1>ChracDet.cu.obj : error LNK2001: 无法解析的外部符号 _cudaMemcpy@16
1>Corner.cu.obj : error LNK2001: 无法解析的外部符号 _cudaMemcpy@16
1>DiffnumDetcu.cu.obj : error LNK2001: 无法解析的外部符号 _cudaMemcpy@16
1>InforDiffDetcu.cu.obj : error LNK2001: 无法解析的外部符号 _cudaMemcpy@16
1>TextDetectTest.cu.obj : error LNK2001: 无法解析的外部符号 _cudaMalloc@8
1>ChracDet.cu.obj : error LNK2019: 无法解析的外部符号 _cudaMalloc@8,该符号在函数 “void __cdecl Chrac(struct _IplImage *)” (?Chrac@@YAXPAU_IplImage@@@Z) 中被引用
1>Corner.cu.obj : error LNK2001: 无法解析的外部符号 _cudaMalloc@8
1>DiffnumDetcu.cu.obj : error LNK2001: 无法解析的外部符号 _cudaMalloc@8
1>Label_delete.cu.obj : error LNK2001: 无法解析的外部符号 _cudaMalloc@8
1>Corner.cu.obj : error LNK2019: 无法解析的外部符号 _cudaDeviceReset@0,该符号在函数 “void __cdecl cuCorner(struct _IplImage *)” (?cuCorner@@YAXPAU_IplImage@@@Z) 中被引用
1>Label_delete.cu.obj : error LNK2001: 无法解析的外部符号 _cudaDeviceReset@0
1>Label_delete.cu.obj : error LNK2019: 无法解析的外部符号 ___cudaRegisterVar@32,该符号在函数 “void __cdecl __nv_cudaEntityRegisterCallback(void * *)” (?__nv_cudaEntityRegisterCallback@@YAXPAPAX@Z) 中被引用
1>Label_delete.cu.obj : error LNK2019: 无法解析的外部符号 _cudaThreadSynchronize@0,该符号在函数 “void __cdecl CCL(struct _IplImage *)” (?CCL@@YAXPAU_IplImage@@@Z) 中被引用
1>D:\TextDetectTest\Debug\TextDetectTest.exe : fatal error LNK1120: 17 个无法解析的外部命令
1>生成日志保存在“file://d:\TextDetectTest\TextDetectTest\Debug\BuildLog.htm”

我用的是vs2008、win7(32位)、cuda5.0。我的原文件里面有很多个.cu文件。这个好像是提示链接错误。我把这些cu文件的属性都已经设置成Runtime API了。为什么还会出现这样的错误呢

还有就是您叫我传那个项目给你,由于文件太大,所以不便传输

您好!版主!能帮我看一下我刚发的错误信息吗?不胜感激!!!

LZ您好:

请您参考如下链接:

http://cudazone.nvidia.cn/forum/forum.php?mod=viewthread&tid=6532

祝您好运~

好的!!谢谢版主!!终于编译通过了!!
万分感谢!

朋友你好,我也出现了 ERROR MSB3721,返回代码为2 ,纠结了好几天了,看了您发的帖子,请问上次是怎么解决的,谢谢

MSB3721是很多中可能的错误的集合(nvcc发生了一个错误),每个人的错误原因可能不同。
而只有知道了自己具体错误后,才能有针对的解决。

请您打开您的build log(从VS的工具菜单选择选项菜单,再选择项目和解决方案,再选择构建和运行,里面有MSBuild log的verbose程度,请您改成detailed),这样您可以看到详细的信息。

从此信息中您可以看到您出错的真实原因,然后您再发帖询问此原因的解决方案。
(以及,您打开log后如果不会看,您可以将log发送到论坛,
论坛将自动为您分析出问题是什么,然后再进一步自动为您解决刚才分析出的问题)

感谢您的来访。

谢谢版主,已经解决了,是自己太粗心了

版主你好,我运行cuda默认程序的时候出现这些情况,您能帮我看看吗文章回复有字数限制,不知道怎么直接发送,所以只能以附件的形式上传了

楼主您好 您可以帮我看看 这个是什么错误吗 它到底是什么意思 困扰了我好久
错误 18 error MSB3721: 命令““C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\bin\nvcc.exe” -gencode=arch=compute_20,code="sm_20,compute_20" --use-local-env --cl-version 2013 -ccbin “D:\VS2013ZHUANYEBAN\VC\bin” -IE:\yanjiuziliao\cuSVM\cuSVM\Include\CrashRpt -IE:\yanjiuziliao\cuSVM\cuSVM\Include\OpenCV -IE:\yanjiuziliao\cuSVM\cuSVM\Include\Halcon -I"D:\Program Files\ModifiableWindowsApps\extern\include" -I"D:\Program Files\ModifiableWindowsApps\extern\lib\win64\microsoft" -I"E:\MATLAB r2015b EXE\extern\lib\win64\microsoft" -I./ -I…/inc -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\include" --keep-dir Release -maxrregcount=0 --machine 32 --compile -cudart static -DWIN32 -D_WINDOWS -D_USRDLL -DMATLAB_MEX_FILE -D_WINDLL -D_UNICODE -DUNICODE -Xcompiler "/EHsc /W3 /nologo /O2 /Zi /MD " -o Release\cuSVMPredictKernel.cu.obj “E:\yanjiuziliao\cuSVM\cuSVM\cuSVMPredict\cuSVMPredictKernel.cu””已退出,返回代码为 2。