我在嵌入式系统上使用 Linux 2.6.36。我尝试用信号量编程。为此,我需要jiffies.h
库中的一个函数。到目前为止这么好。当我包含 Lib
无论是这种方式
#include <jiffies.h>
或者这样
#include <linux/jiffies.h>
作品。
但奇怪的是,如果我打开声明(eclipse 命令),它会打开一个带有库的新编辑器窗口。有谁知道该怎么做?
我在嵌入式系统上使用 Linux 2.6.36。我尝试用信号量编程。为此,我需要jiffies.h
库中的一个函数。到目前为止这么好。当我包含 Lib
无论是这种方式
#include <jiffies.h>
或者这样
#include <linux/jiffies.h>
作品。
但奇怪的是,如果我打开声明(eclipse 命令),它会打开一个带有库的新编辑器窗口。有谁知道该怎么做?
解决了一个谜团:Eclipse 将项目中的所有文件名存储在一种列表中,当我单击show declaration
它时,在列表中搜索该名称并显示该文件。因此,如果可行,它不会说明编译器和链接器。如果这不是真的,请纠正我。
您可能没有正确构建模块。内核模块 Makefile 非常简单,整体看起来应该是这样的:
obj-m := mymodule.o
mymodule.ko: mymodule.c mymodule.h
$(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
内核构建系统将完成其余的工作。有关更多详细信息,请参阅http://lwn.net/Kernel/LDD3/中有关构建模块的章节
编辑:
现在看来,您可能根本就没有尝试编写内核模块。在这种情况下,您不需要任何包含在内核源代码中的文件。jiffies.h 不是用户态包含;它是内核的一部分,用于编写内核的一部分。对于用户态信号量,请尝试使用 POSIX 信号量。从man sem_overview
, 和/或 Google“POSIX 信号量”开始。