警告:函数的隐式声明'crypt_r'

问题描述:

我正试图编写一个多线程程序,我需要调用函数crypt。但是编译器会抛出这个警告。它也不能识别crypt_data。有任何想法吗?警告:函数的隐式声明'crypt_r'

+1

你试过#include相应的头文件吗?你检查过你的系统上的头文件吗?您是否尝试在/ usr/include中加密crypt_r? – 2012-04-03 01:05:20

+0

不,我期望默认拥有所有的功能......现在真的?是的,我已经包含了crypt.h,并且还定义了_GNU_SOURCE – skyel 2012-04-03 01:24:16

+0

嘿,我只是问了一些常见问题 - 你不会相信人们用这样的东西解决的简单问题。当然,我的意思不是侮辱。 – 2012-04-03 12:15:27

预处理程序的来源,例如通过运行gcc -E代替gcc -c。查看输出以查看是否有一些/所有/不是您期望的crypt函数出现在声明中。

您需要包含适当的头文件。在这种情况下,crypt.h

#include <crypt.h> 
+0

在OS X上,我收到错误'crypt.h:没有这样的文件或目录。我从哪里可以得到它? – kadrian 2012-12-26 18:58:14

+0

您需要安装libcrypt dev文件。 – Anycorn 2012-12-27 02:55:17

声明函数crypt(前向声明)的原型或包含具有该函数的头。