2012-04-03 172 views
1

我正試圖編寫一個多線程程序,我需要調用函數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

回答

1

預處理程序的來源,例如通過運行gcc -E代替gcc -c。查看輸出以查看是否有一些/所有/不是您期望的crypt函數出現在聲明中。

3

您需要包含適當的頭文件。在這種情況下,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

1

聲明函數crypt(前向聲明)的原型或包含具有該函數的頭。