我在c中使用了crypt函数来加密给定的字符串。我已经编写了以下代码,
#include<stdio.h>
#include<unistd.h>
int main()
{
printf("%s\n",crypt("passwd",1000));
}但是上面的代码抛出了一个错误,“未定义对‘`crypt’的引用”。上面的代码中有什么问题。
提前谢谢。
发布于 2010-04-02 15:51:44
如果要使用crypt()函数,则需要链接到提供该函数的库。将-lcrypt添加到编译命令中。
旧版本的glibc为此提供了一个libcrypt库,并在<unistd.h>中声明了该函数-要针对此支持进行编译,您可能还需要在代码中定义_XOPEN_SOURCE或_GNU_SOURCE,然后才能包含<unistd.h>。
较新版本的glibc不提供libcrypt -它是由一个单独的libxcrypt提供的。您仍然使用-lcrypt进行链接,但是函数是在<crypt.h>中声明的。
发布于 2015-07-14 21:57:53
在#include头文件之前,您必须先执行#define __XOPEN_SOURCE。
发布于 2010-04-02 14:59:08
如果您想使用crypt(),则需要包含crypt.h。在您的其他两个包含项下面添加:
#include <crypt.h>https://stackoverflow.com/questions/2565427
复制相似问题