一个简单的cuda程序,编译错误,不知道是不是少了什么头文件,在线求解

cai123321cai 2010-06-14 10:43:33
如题

网上找的一个 CUDA sha1 原代码,看到好几个人都说代码没错,可以顺利编译,为什么我编译的时候出一大堆错误,

http://cuda.csdn.net/News.aspx?id=7c2219e0-ced0-430d-900d-9f3675508767 源代码,
注意:直接复制会有很多全拼的符号在里面,最下面有个下载地址,里面有代码

CUDA SDK 还有 toolkit都装了,vs2005里也添加了头文件目录,

刚开始缺少头文件,引用了以后,又出一大堆错误,求解


1>------ 已启动生成: 项目: sha1, 配置: Debug Win32 ------
1>Compiling...
1>sha1.cpp
1>d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(163) : warning C4018: '<' : signed/unsigned mismatch
1>d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(223) : error C2664: 'StringrCopy' : cannot convert parameter 2 from 'char *' to 'LPTSTR'
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(230) : error C2664: 'StringrCopy' : cannot convert parameter 2 from 'char *' to 'LPTSTR'
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(237) : error C2664: 'StringrCopy' : cannot convert parameter 2 from 'char *' to 'LPTSTR'
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(254) : error C2664: 'StringrCopy0' : cannot convert parameter 1 from 'char [256]' to 'LPTSTR'
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(268) : error C2144: syntax error : 'unsigned long' should be preceded by ';'
1>d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(268) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(269) : error C2144: syntax error : 'unsigned long' should be preceded by ';'
1>d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(269) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(269) : error C2086: 'int __constant__' : redefinition
1> d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(268) : see declaration of '__constant__'
1>d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(270) : error C2144: syntax error : 'unsigned long' should be preceded by ';'
1>d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(270) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(270) : error C2086: 'int __constant__' : redefinition
1> d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(268) : see declaration of '__constant__'
1>d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(271) : error C2144: syntax error : 'unsigned char' should be preceded by ';'
1>d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(271) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(271) : error C2086: 'int __constant__' : redefinition
1> d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(268) : see declaration of '__constant__'
1>d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(272) : error C2144: syntax error : 'unsigned long' should be preceded by ';'
1>d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(272) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(272) : error C2086: 'int __constant__' : redefinition
1> d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(268) : see declaration of '__constant__'
1>d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(273) : error C2144: syntax error : 'unsigned long' should be preceded by ';'
1>d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(273) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(273) : error C2086: 'int __constant__' : redefinition
1> d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(268) : see declaration of '__constant__'
1>d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(276) : error C2144: syntax error : 'void' should be preceded by ';'
1>d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(276) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(284) : warning C4018: '<' : signed/unsigned mismatch
1>d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(285) : error C2065: 'threadIdx' : undeclared identifier
1>d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(285) : error C2228: left of '.x' must have class/struct/union
1> type is ''unknown-type''
1>d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(285) : error C2065: 'blockIdx' : undeclared identifier
1>d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(285) : error C2228: left of '.x' must have class/struct/union
1> type is ''unknown-type''
1>d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(291) : warning C4018: '<' : signed/unsigned mismatch
1>d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(296) : warning C4018: '>=' : signed/unsigned mismatch
1>d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(301) : warning C4018: '>=' : signed/unsigned mismatch
1>d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(310) : warning C4018: '<' : signed/unsigned mismatch
1>d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(317) : error C3861: '__syncthreads': identifier not found
1>d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(440) : warning C4018: '<' : signed/unsigned mismatch
1>d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(470) : error C2144: syntax error : 'void' should be preceded by ';'
1>d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(470) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(470) : error C2086: 'int __global__' : redefinition
1> d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(276) : see declaration of '__global__'
1>d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(478) : warning C4018: '<' : signed/unsigned mismatch
1>d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(479) : error C2228: left of '.x' must have class/struct/union
1> type is ''unknown-type''

下面还有错误,发不了了,

求解
...全文
864 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
cai123321cai 2010-06-16
  • 打赏
  • 举报
回复
顶起来,继续等
cai123321cai 2010-06-15
  • 打赏
  • 举报
回复
我是楼主,我又来在线等了,等到明天中午

求解
cai123321cai 2010-06-15
  • 打赏
  • 举报
回复
十分感谢楼上的几位,

我发帖几十分钟以后就解决了,因为vs 2008缺少cuda样式

装上CUDA_VS_Wizard_W32就解决了

这个是CUDA破解sha1的代码,编译通过,可以用,

可是我要破解 sha1(hex_salt.pass) 这种密码,带调料的(16进制)

另外还要加个字典破解

不知道要修改哪里,麻烦各位再帮忙看下

整个程序只有一个文件,代码有点长,贴出来一部分,

http://cuda.csdn.net/News.aspx?id=7c2219e0-ced0-430d-900d-9f3675508767
这里是原帖地址,附件里面的代码没有html符号

printf( "Start with %d passwords %d-%d\n", PassCountr, StartLength, StopLength-1);
while ((StartLength < StopLength)&(PassCountr>0))
{

for (int i=0;i<10;i++) ret[i]=0;
char * pb = (char *)&ret[1];

for (int i=0;i<StartLength;i++) pb[i]=CharSet[Plain[i]];
CUDA_SAFE_CALL(cudaMemcpyToSymbol(nVPlain , Plain, 16*4));
CUDA_SAFE_CALL(cudaMemcpy(dret, &ret, 40 , cudaMemcpyHostToDevice));
if (Short_Hash==0)
{
sha1<<<BLOKS,THREADS>>>(dcompslow,dTnext,dTabI,dret);
} else sha1_short<<<BLOKS,THREADS>>>(dcompslow,dTnext,dTabI,dret);
cudaThreadSynchronize();

CUDA_SAFE_CALL(cudaMemcpy(ret, dret, 40 , cudaMemcpyDeviceToHost));

if (((ret[7]==0) && (ret[0]!=5))|(ret[8]==5))
{
printf("X.Z. nVidia driver fall down \n");
FreeMem();
return(0);
}

if (ret[0]==5)
{
printf("Found Pass:%s:%.40s:%s \n",Pass[ret[5]].name,Pass[ret[5]].hash,&ret[1]);
if (OutPas!=INVALID_HANDLE_VALUE)
{
char OutPasS[100];
strcpy(OutPasS,Pass[ret[5]].name);
strcat(OutPasS,":");
strcat(OutPasS,(LPTSTR)&ret[1]);
strcat(OutPasS,"\x0d\x0a");
int IB=strlen(OutPasS);
WriteFile(OutPas,OutPasS,IB,(LPDWORD)&IB,0);
}
OpenHero 2010-06-15
  • 打赏
  • 举报
回复
肯定是环境没配置好~~直接用wizard吧·~
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 l7331014 的回复:]
引用 1 楼 cai123321cai 的回复:
装上 CUDA_VS_Wizard_W32 就解决了,

过来个人,接分


没设置好cuda编译用rules.
不是用nvcc编译的.而是直接用了c/c++的编译器.

第一个错误表明了这一点:
>d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(16……
[/Quote]

不好意思,没仔细看,上面的错误点请无视.
但如果在
sha1<<<BLOKS,THREADS>>>(dcompslow,dTnext,dTabI,dret);
处有错误的话,上面的理由应该成立.(错误定位点错了.呵呵)
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cai123321cai 的回复:]
装上 CUDA_VS_Wizard_W32 就解决了,

过来个人,接分
[/Quote]

没设置好cuda编译用rules.
不是用nvcc编译的.而是直接用了c/c++的编译器.

第一个错误表明了这一点:
>d:\my documents\visual studio 2005\projects\sha1\sha1\sha1.cpp(163) : warning C4018: '<' : signed/unsigned mismatch

错误地方应该是host程序中<<<...>>>的部分.
<<被c++处理了,但第三个<对c++就莫名其妙了.于是乎.....
nvcc扩展了C的语法的.
cai123321cai 2010-06-15
  • 打赏
  • 举报
回复
装上 CUDA_VS_Wizard_W32 就解决了,

过来个人,接分

580

社区成员

发帖
与我相关
我的任务
社区描述
CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。
社区管理员
  • CUDA编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧