我已经使用 c 中的 crypt 函数来加密给定的字符串。 我写了下面的代码,
#include<stdio.h>
#include<unistd.h>
int main()
{
printf("%s\n",crypt("passwd",1000));
}
但是上面的代码抛出了一个错误,“undefined reference to `crypt'”。 上面的代码有什么问题。
提前致谢。
最佳答案
如果你想使用 crypt()
功能,您需要链接到提供它的库。添加-lcrypt
到你的编译命令。
旧版本的 glibc 提供了一个 libcrypt
用于此目的的库,并在 <unistd.h>
中声明了函数- 要针对此支持进行编译,您可能还需要定义 _XOPEN_SOURCE
或 _GNU_SOURCE
在你的代码中包含 <unistd.h>
.
较新版本的 glibc 不提供 libcrypt
- 它由单独的 libxcrypt
提供.您仍然链接 -lcrypt
, 但该函数是在 <crypt.h>
中声明的.
关于crypt 函数和链接错误 "undefined reference to ' crypt'",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2565427/