我有:
main.c
具有函数调用的 main 函数的AC 程序。- 另一个
test.c
带有函数定义的 C 程序。 - 标头
test.h
具有公共声明。
请仔细阅读我的目标 ,我的目标是拥有一个内核对象和一个使用它的应用程序。我需要在运行时为函数提供一些输入并进行处理。
我在终端中使用它。谁能帮帮我?
我有:
main.c
具有函数调用的 main 函数的AC 程序。test.c
带有函数定义的 C 程序。test.h
具有公共声明。请仔细阅读我的目标 ,我的目标是拥有一个内核对象和一个使用它的应用程序。我需要在运行时为函数提供一些输入并进行处理。
我在终端中使用它。谁能帮帮我?
为了编译内核模块,你可以编写这个基本的 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>