我有:
main.c
,其主函数具有函数调用。test.c
。 test.h
具有公共声明。请仔细阅读我的目标 我的目标是拥有一个内核对象和一个使用它的应用程序。 我需要在运行时为函数提供一些输入并使用它进行处理。
我在终端使用它。 有人可以帮帮我吗?
答案 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>