各路大神好!
我之前写的代码在我原来的电脑上可以成功的执行。最近新配置了一台电脑,把原来的工程拷到新电脑上连“生成解决方案”都失败,出现了以下的错误信息提示:
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: :cry:](https://forums.developer.nvidia.cn/images/emoji/twitter/cry.png?v=12)
这就是全部的错误代码?没有给出具体的出错信息?
楼主能否方便将项目打包上传,然后我编译看下错误信息?
感谢来访。
以及,
具体的出错信息应该不止这些(特别是您在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了。为什么还会出现这样的错误呢
system
10
还有就是您叫我传那个项目给你,由于文件太大,所以不便传输
system
11
您好!版主!能帮我看一下我刚发的错误信息吗?不胜感激!!!
system
12
system
13
好的!!谢谢版主!!终于编译通过了!!
万分感谢!
system
14
朋友你好,我也出现了 ERROR MSB3721,返回代码为2 ,纠结了好几天了,看了您发的帖子,请问上次是怎么解决的,谢谢
system
15
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。