將多個原始檔編譯成乙個ko

2021-07-10 08:57:38 字數 1567 閱讀 5011

有三個檔案,分別是proc_rw.c、test.c和test.h,現在把這三個檔案編譯成proc.ko

1、proc_rw.c

#include #include #include #include //copy_to|from_user

#include "test.h"

//在str中儲存使用者態write到檔案的字串

static char *str;

//proc檔案的讀函式

static int my_proc_read(char *page, char **start, off_t off, int count, int *eof, void *data)

//proc檔案的寫函式

static int my_proc_write(struct file *filp, const char __user *buf, unsigned long count, void *data)

//釋放舊的字串,可以是null,為了清空之前存在的內容,每次都是覆蓋

kfree(str);

str = tmp;

return count;

}static int __init my_init(void)

//2.關聯讀寫函式

file->read_proc = my_proc_read;

file->write_proc = my_proc_write;

return 0;

}static void __exit my_exit(void)

module_init(my_init);

module_exit(my_exit);

module_author("jx");

module_license("gpl");

2、test.c

#include "test.h"

int test_func(void)

3、test.h

int test_func(void);
4、makefile

target = proc

obj-m:=$(target).o

$(target)-objs:=proc_rw.o test.o

kernel := /lib/modules/`uname -r`/build

all:

make -c $(kernel) m=`pwd` modules

install:

make -c $(kernel) m=`pwd` modules_install

depmod -a

clean:

make -c $(kernel) m=`pwd` clean

列印出test_func函式裡的值,說明proc_rw.c呼叫了test.c檔案,這這三個檔案編譯出了proc.ko檔案。

關於C語言多個原始檔編譯成乙個程式

第一次用csdn的部落格,慕名而來,決定好好經營下自己的技術部落格。今天看 c和指標 中第二章程式設計訓練的第一題,就是關於c語言多個原始檔編譯成乙個程式的問題。之前自己一直都不太搞得懂這個,不過之前寫的程式都是簡單的,乙個原始檔就能搞定的那種,所以也一直懶了沒有去學怎麼,心裡隱隱的對學習心的東西感...

編譯器怎麼把多個原始檔編譯成乙個程式

預處理 修改 用 include指令新增相關的標頭檔案,編譯器可能還需要根據實際情況跳過程式中的某些 或補充一些 可以用 define和 ifdef來實現。編譯 轉換成彙編 計算機只能理解更低層的機器 指令。而生成機器 的第一步就是把c語言源 轉化為組合語言 彙編 生成目標 編譯器把這些彙編 都是些...

CMakeList1 將原始檔編譯成可執行檔案

1.cmake版本要求,可以用cmake version檢視當前系統的cmake版本 cmake minimum required version 3.5 2.指示工程名稱 project recipe 01 3.編譯鏈結生成可執行檔案 add executable helloworld main....