如何为.ko程序Linux提供应用程序(C程序)

时间:2012-08-23 14:25:49

标签: c linux linux-kernel embedded-linux kernel

我有:

  1. 一个C程序main.c,其主函数具有函数调用。
  2. 另一个带有函数定义的C程序test.c
  3. 标题test.h具有公共声明。
  4. 请仔细阅读我的目标 我的目标是拥有一个内核对象和一个使用它的应用程序。 我需要在运行时为函数提供一些输入并使用它进行处理。

    我在终端使用它。 有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:2)

编译内核模块时,可以编写这个基本的makefile:

obj-m += <your_obj_file>.o

all:
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

clean:
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

之后,您必须使用

构建和加载模块
make
insmod <your_module>.ko

但是当我读到你的时候,我想你真正想做的不是内核模块。 我想你想建立一个共享库( .so 文件或 .dll ),不是吗?

如果它是一个linux共享库,你想在这里构建调用命令:

gcc -c -fPIC test.c
gcc -shared test.o -o libtest.so

gcc -c main.c
gcc main.o -o <binary name> -ltest

但是如果你只想以经典方式构建一个静态二进制文件:

gcc -c test.c
gcc -c main.c

gcc test.o main.o -o <binary name>