试图编译生成 sha1 哈希的程序
trying to compile the program which generates sha1 hashes
我正在尝试编译这个程序https://gist.github.com/jrabbit/1042021
我正在使用这个 https://doc.opensuse.org/projects/satsolver/11.2/sha1_8h_source.html sha1.h 文件。但是,如果我尝试编译程序 gcc 会出现以下错误 (gcc on windows)
c:/mingw/bin/../lib/gcc/mingw32/6.3.0/../../../libmingw32.a(main.o):(.text.start
up+0xa0): 未定义对 `WinMain@16' 的引用
collect2.exe:错误:ld 返回了 1 个退出状态
gcc 无法识别类型 u_int32_t 所以我在 sha1.c 代码
中将它们更改为 unit32_t
哪里出了问题?
图书馆没有main
函数。任何 C 程序都必须有一个 main
函数才能编译。
因此,您可以创建一个 main.c
文件并将库包含在其中。
或者在sha1.c
的第251行将#if 0
修改为#if 1
,这样会打开库中包含的模板主函数
请注意,模板“main”函数存在一些错误。用类似的东西替换它:
#define BUFSIZE 10
int
main(int argc, char **argv)
{
SHA1_CTX ctx;
unsigned char hash[20], buf[BUFSIZE];
int i;
for(i=0;i<BUFSIZE;i++)
{
buf[i] = i + '0';
printf("%i", i);
}
printf("\n");
SHA1Init(&ctx);
for(i=0;i<BUFSIZE;i++)
SHA1Update(&ctx, buf + i, 1);
SHA1Final(hash, &ctx);
printf("SHA1=");
for(i=0;i<20;i++)
printf("%02x", hash[i]);
printf("\n");
return 0;
}
我正在尝试编译这个程序https://gist.github.com/jrabbit/1042021 我正在使用这个 https://doc.opensuse.org/projects/satsolver/11.2/sha1_8h_source.html sha1.h 文件。但是,如果我尝试编译程序 gcc 会出现以下错误 (gcc on windows)
c:/mingw/bin/../lib/gcc/mingw32/6.3.0/../../../libmingw32.a(main.o):(.text.start up+0xa0): 未定义对 `WinMain@16' 的引用 collect2.exe:错误:ld 返回了 1 个退出状态
gcc 无法识别类型 u_int32_t 所以我在 sha1.c 代码
中将它们更改为 unit32_t哪里出了问题?
图书馆没有main
函数。任何 C 程序都必须有一个 main
函数才能编译。
因此,您可以创建一个 main.c
文件并将库包含在其中。
或者在sha1.c
的第251行将#if 0
修改为#if 1
,这样会打开库中包含的模板主函数
请注意,模板“main”函数存在一些错误。用类似的东西替换它:
#define BUFSIZE 10
int
main(int argc, char **argv)
{
SHA1_CTX ctx;
unsigned char hash[20], buf[BUFSIZE];
int i;
for(i=0;i<BUFSIZE;i++)
{
buf[i] = i + '0';
printf("%i", i);
}
printf("\n");
SHA1Init(&ctx);
for(i=0;i<BUFSIZE;i++)
SHA1Update(&ctx, buf + i, 1);
SHA1Final(hash, &ctx);
printf("SHA1=");
for(i=0;i<20;i++)
printf("%02x", hash[i]);
printf("\n");
return 0;
}