2013-01-02 57 views
1

我最近更新了Ubuntu從10.04到12.04,這將Linux內核從2.6.35-30-server改爲3.0.0-29-server。更新後,我正在編譯我的驅動程序代碼時出現錯誤。Linux semaphore_init:錯誤隱式聲明函數'semaphore_init'

error: implicit declaration of function 'semaphore_init' [-Werror=implict-function-declaration].

我該如何解決?

回答

3

除非semaphore_init是你自己製作的函數,我想你會想要sema_init來代替。

+2

這確實是答案。我不知道爲什麼它可以在2.6。*下運行,但它不能在[3.0。*]下運行(http://git.kernel.org/?p=linux/kernel/git/torvalds/linux。 GIT中; A =斑點; F =在include/linux/semaphore.h中; H = dc368b8ce215ccc0f6a2b44a16dd2aaa603dbcd1; HB = HEAD)。而不是'semaphore_init(x)',使用'sema_init(x,1)'。 – 2013-01-02 19:55:47

+0

謝謝。它現在有效。 – Pintu