-4

我有:

  1. main.c具有函数调用的 main 函数的AC 程序。
  2. 另一个test.c带有函数定义的 C 程序。
  3. 标头test.h具有公共声明。

请仔细阅读我的目标 ,我的目标是拥有一个内核对象和一个使用它的应用程序。我需要在运行时为函数提供一些输入并进行处理。

我在终端中使用它。谁能帮帮我?

4

1 回答 1

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>
于 2012-08-23T14:49:01.800 回答