用户
 找回密码
 立即注册
SEAGULL 该用户已被删除
发表于 2013-9-3 11:17:16
4682317
     各路大神好!
     我之前写的代码在我原来的电脑上可以成功的执行。最近新配置了一台电脑,把原来的工程拷到新电脑上连“生成解决方案”都失败,出现了以下的错误信息提示:
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.


在线等!!项目比较急!!谢谢!
使用道具 举报 回复
发表于 2013-9-4 11:05:50
SEAGULL 发表于 2013-9-4 09:24
版主你好!!
我昨天设置了一下,得到一下信息:

LZ您好:

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

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

祝您好运~
使用道具 举报 回复 支持 反对
发表于 2013-11-20 22:57:56
yexuannan 发表于 2013-11-20 16:49
朋友你好,我也出现了 ERROR MSB3721,返回代码为2 ,纠结了好几天了,看了您发的帖子,请问上次是怎么解 ...

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

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

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

感谢您的来访。
使用道具 举报 回复 支持 1 反对 0
发表于 2013-9-3 11:24:09
LZ您好:

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

祝您好运~
使用道具 举报 回复 支持 反对
发表于 2013-9-4 09:24:20
ice 发表于 2013-9-3 11:24
LZ您好:

很多情况下,导致错误的原因不会被显示,您可以从VS的Debug菜单的Options菜单项中,将

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


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位系统进行调试执行,然后出现上述的错误!!
使用道具 举报 回复 支持 反对
发表于 2013-9-4 11:24:13
ice 发表于 2013-9-4 11:05
LZ您好:

根据您新提供的信息,注意到“--machine 32”,这表示您的device端生成的是32bit的代码,而您 ...

我修改了!但还是出现那个问题啊!!我快要疯了!!!!!
使用道具 举报 回复 支持 反对
发表于 2013-9-4 11:25:49
ice 发表于 2013-9-4 11:05
LZ您好:

根据您新提供的信息,注意到“--machine 32”,这表示您的device端生成的是32bit的代码,而您 ...

难道是文件的路径问题吗???
使用道具 举报 回复 支持 反对
发表于 2013-9-4 13:39:01
SEAGULL 发表于 2013-9-4 09:24
版主你好!!
我昨天设置了一下,得到一下信息:

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

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

感谢来访。
使用道具 举报 回复 支持 反对
发表于 2013-9-4 13:48:22
横扫千军 发表于 2013-9-4 13:39
这就是全部的错误代码?没有给出具体的出错信息?

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

以及,

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

这将有利于为您查找问题的所在,
谢谢。
使用道具 举报 回复 支持 反对
发表于 2013-9-10 10:23:26
横扫千军 发表于 2013-9-4 13:48
以及,

具体的出错信息应该不止这些(特别是您在ICE的提示下打开了detailed 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>(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了。为什么还会出现这样的错误呢
使用道具 举报 回复 支持 反对
发表于 2013-9-10 10:24:10
横扫千军 发表于 2013-9-4 13:48
以及,

具体的出错信息应该不止这些(特别是您在ICE的提示下打开了detailed log后),

还有就是您叫我传那个项目给你,由于文件太大,所以不便传输
使用道具 举报 回复 支持 反对
12下一页
发新帖
您需要登录后才可以回帖 登录 | 立即注册