crypt 函数和链接错误 "undefined reference to ' crypt'"

标签 c linker-errors crypt

我已经使用 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/

相关文章:

c - 从用户输入动态填充数组时接收非零退出状态

c++ - 使用 Direct2D 无法解析的外部符号

loops - 在嵌套 for 循环中使用并发? (蛮力)

javascript - node.js rsa 加密/解密

c - 使用一个函数作为另一个函数的参数时的“error: invalid use of void expression”

c++ - memchr 一个bin文件

ios - 集成 OpenCV 框架的架构 armv7 的 undefined symbol

java - 什么用于密码散列?有什么理由不使用 jBCrypt 吗?

c - 编译时段错误的可能原因

c - 使用 Openpicus 的 Microchip C30 编译器编译时出现链接错误