首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >crypt函数和链接错误“未定义对‘crypt’的引用”

crypt函数和链接错误“未定义对‘crypt’的引用”
EN

Stack Overflow用户
提问于 2010-04-02 14:56:54
回答 5查看 15.8K关注 0票数 6

我在c中使用了crypt函数来加密给定的字符串。我已经编写了以下代码,

代码语言:javascript
复制
#include<stdio.h>
#include<unistd.h>

int main()
{
    printf("%s\n",crypt("passwd",1000));
}

但是上面的代码抛出了一个错误,“未定义对‘`crypt’的引用”。上面的代码中有什么问题。

提前谢谢。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-04-02 15:51:44

如果要使用crypt()函数,则需要链接到提供该函数的库。将-lcrypt添加到编译命令中。

旧版本的glibc为此提供了一个libcrypt库,并在<unistd.h>中声明了该函数-要针对此支持进行编译,您可能还需要在代码中定义_XOPEN_SOURCE_GNU_SOURCE,然后才能包含<unistd.h>

较新版本的glibc不提供libcrypt -它是由一个单独的libxcrypt提供的。您仍然使用-lcrypt进行链接,但是函数是在<crypt.h>中声明的。

票数 10
EN

Stack Overflow用户

发布于 2015-07-14 21:57:53

#include头文件之前,您必须先执行#define __XOPEN_SOURCE

票数 2
EN

Stack Overflow用户

发布于 2010-04-02 14:59:08

如果您想使用crypt(),则需要包含crypt.h。在您的其他两个包含项下面添加:

代码语言:javascript
复制
#include <crypt.h>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2565427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档